In a Microsoft Exchange Server 2007 environment, you find that the free/busy information about an user is not displayed. Additionally, you set the Exchange Server Diagnostics Logging level for the Availability Service to one of the following three levels
When you do this, the following event is logged in the Application log:
Event ID : 4013
Raw Event ID : 4013
Category : None
Source : MSExchange Availability
Type : Error
Message : Process <ID>[w3wp.exe:/LM/W3SVC/1/ROOT/EWS-<ID>]:
Calendar query failed for mailbox <user name>SMTP:<smtp address>. The returned exception is as follows:
Microsoft.Exchange.InfoWorker.Common.Availability.Win32InteropException: A Win32
function returned an error. The inner exception may have more details. --->
System.ArgumentOutOfRangeException: Non-negative number required.
Parameter name: count
at System.IO.BinaryReader.ReadBytes(Int32 count)
at Microsoft.Exchange.Data.Storage.InternalRecurrence.ReadExceptionInfoSubstring(Binary Reader blobReader, Int32 usingCodePageId)
at Microsoft.Exchange.Data.Storage.InternalRecurrence.ParseExceptionInfo(BinaryReader blobReader, RecurrenceVersion recurrenceVersion, Int32 usingCodePageId)
at Microsoft.Exchange.Data.Storage.InternalRecurrence.InternalParse(Byte[] blob, Item masterItem, VersionedId masterItemId, ExchangeTimeZone organizerTimeZone, ExchangeTimeZone userTimeZone, Boolean expectNoException, Int32 usingCodePageId)
at Microsoft.Exchange.Data.Storage.InternalRecurrence.InternalParse(Byte[] blob, VersionedId masterItemId, ExchangeTimeZone organizerTimeZone, ExchangeTimeZone userTimeZone, Int32 usingCodePageId)
at Microsoft.Exchange.Data.Storage.InternalRecurrence.GetRecurrence(VersionedId versionedId, StoreSession session, Byte[] recurrenceBlob, Byte[] organizerTimeZoneBlob, Int32 usingCodePageId)
at Microsoft.Exchange.Data.Storage.CalendarFolder.GetRecurringCalendarItems(DateTime startTime, DateTime endTime, PropertyDefinition[] dataColumns)
at Microsoft.Exchange.Data.Storage.CalendarFolder.GetCalendarView(DateTime startTime, DateTime endTime, QueryFilter filter, SortBy[] sortColumns, PropertyDefinition[] dataColumns)
at Microsoft.Exchange.InfoWorker.Common.Availability.CalendarQuery.InternalGetCalendarData(EmailAddress emailAddress, MailboxSession session)
at Microsoft.Exchange.InfoWorker.Common.Availability.CalendarQuery.GetCalendarData(EmailAddress emailAddress)
The error is caused by certain internal functions in Exchange Server 2007 that throw a wrong exception for a corrupted calendar item. Therefore, the free/busy information for certain users is not displayed.
To resolve this problem, install the following update rollup:
972076
(http://support.microsoft.com/kb/972076/
)
Description of Update Rollup 2 for Exchange Server 2007 Service Pack 2
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
For more information about how to change Logging Levels for Exchange Processes, visit the following Microsoft Web site:
Article ID: 976025 - Last Review: January 22, 2010 - Revision: 1.0
APPLIES TO
- Microsoft Exchange Server 2007 Service Pack 2, when used with:
- Microsoft Exchange Server 2007 Enterprise Edition
- Microsoft Exchange Server 2007 Standard Edition
| kbsurveynew kbhotfixrollup kbexpertiseinter kbfix kbqfe KB976025 |