我們有EWS郵件用戶零星的問題。在堆棧跟蹤我們看到是否從枚舉MailboxType中缺少GroupMailBox?
System.ArgumentException: Requested value 'GroupMailbox' was not found.'
發現
這是堆棧跟蹤:
at System.Enum.TryParseEnum (System.Type enumType, System.String value, Boolean ignoreCase, System.EnumResult& parseResult) <0x10087d640 + 0x0052b>
in <filename unknown>:0
at System.Enum.Parse (System.Type enumType, System.String value, Boolean ignoreCase) <0x1006b91a8 + 0x00057>
in <filename unknown>:0
at Microsoft.Exchange.WebServices.Data.EwsUtilities.Parse[T] (System.String value) <0x10114e1ac + 0x000e3>
in <filename unknown>:0
at Microsoft.Exchange.WebServices.Data.EwsXmlReader.ReadValue[T]() <0x10114e764 + 0x00053>
in <filename unknown>:0
at Microsoft.Exchange.WebServices.Data.EwsXmlReader.ReadElementValue[T]() <0x10114e078 + 0x00087>
in <filename unknown>:0
at Microsoft.Exchange.WebServices.Data.EmailAddress.TryReadElementFromXml (Microsoft.Exchange.WebServices.Data.EwsServiceXmlReader reader) <0x1010a4330 + 0x00187>
at Microsoft.Exchange.WebServices.Data.EmailAddress.TryReadElementFromXml (Microsoft.Exchange.WebServices.Data.EwsServiceXmlReader reader) <0x1010a4330 + 0x00187>
在源,我們的事情該方法 EmailAddress的:: TryReadElementFromXml
case XmlElementNames.MailboxType:
this.mailboxType = reader.ReadElementValue<MailboxType>();
分析:
我們認爲對於某些郵件,MailboxType枚舉試圖解析。但枚舉MailboxType不包含值GroupMailbox,因此引發異常。
這是MailboxType枚舉
的文檔有沒有可能是服務器邏輯是更新枚舉沒有跟上最新的???
此外:
而且我們已經追查下來的方法EWSUtilities.cs
internal static T Parse<T>(string value)
else子句是
else
{
return (T)Enum.Parse(typeof(T), value, false);
}
哪些應該在保留枚舉沒有找到?而不是做一個TryParse它做一個解析失敗。
這顯然也是一個錯誤???
你的權利。謝謝Glen! – mbalsam