Симптоми
Опит за автоматично генериране на прокси код, базиран на схемата на Microsoft Exchange Server 2010 Service Pack 1 (SP1). В тази ситуация следния ред липсва в кода на прокси сървъра:
[System.Web.Services.Protocols.SoapHeaderAttribute("ExchangeImpersonation")]
Следователно автоматично генерирани прокси сървъри не поддържат Exchange Impersonation.This проблем засяга следните три операции:
-
GetUserOofSettings
-
SetUserOofSettings
-
GetUserAvailability
Решение
За да разрешите този проблем, инсталирайте следния Сборен пакет за актуализация:
2579150 Описание на сборния пакет за актуализация 4 за Exchange Server 2010 Service Pack 1
Заобиколно решение
За да заобиколите този проблем, използвайте Microsoft Exchange Web Services (EWS) Managed API 1.1 да промените генерирани класове в схемата. За да направите това, добавете следния ред в кода на прокси сървъра:
[System.Web.Services.Protocols.SoapHeaderAttribute("ExchangeImpersonation")]
По-долу е даден пример за GetUserOofSettings операция. Оригиналният код:
[System.Web.Services.Protocols.SoapHeaderAttribute("ServerVersionInfoValue", Direction = System.Web.Services.Protocols.SoapHeaderDirection.Out)][System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.microsoft.com/exchange/services/2006/messages/GetUserOofSettings", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Bare)][return: System.Xml.Serialization.XmlElementAttribute("GetUserOofSettingsResponse", Namespace = "http://schemas.microsoft.com/exchange/services/2006/messages")]public GetUserOofSettingsResponse GetUserOofSettings([System.Xml.Serialization.XmlElementAttribute(Namespace = "http://schemas.microsoft.com/exchange/services/2006/messages")] GetUserOofSettingsRequest GetUserOofSettingsRequest){ object[] results = this.Invoke("GetUserOofSettings", new object[] { GetUserOofSettingsRequest}); return ((GetUserOofSettingsResponse)(results[0]));}
Промените в кода:
[System.Web.Services.Protocols.SoapHeaderAttribute("ServerVersionInfoValue", Direction = System.Web.Services.Protocols.SoapHeaderDirection.Out)][System.Web.Services.Protocols.SoapHeaderAttribute("ExchangeImpersonation")][System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.microsoft.com/exchange/services/2006/messages/GetUserOofSettings", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Bare)][return: System.Xml.Serialization.XmlElementAttribute("GetUserOofSettingsResponse", Namespace = "http://schemas.microsoft.com/exchange/services/2006/messages")]public GetUserOofSettingsResponse GetUserOofSettings([System.Xml.Serialization.XmlElementAttribute(Namespace = "http://schemas.microsoft.com/exchange/services/2006/messages")] GetUserOofSettingsRequest GetUserOofSettingsRequest){ object[] results = this.Invoke("GetUserOofSettings", new object[] { GetUserOofSettingsRequest}); return ((GetUserOofSettingsResponse)(results[0]));}
Статус
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за".
Повече информация
За повече информация относно GetUserOofSettings операция посетете следния уеб сайт на Microsoft:
Обща информация за GetUserOofSettings операцияЗа повече информация относно SetUserOofSettings операция посетете следния уеб сайт на Microsoft:
Обща информация за SetUserOofSettings операцияЗа повече информация относно GetUserAvailability операция посетете следния уеб сайт на Microsoft:
Обща информация за GetUserAvailability операцияЗа повече информация за въплъщаване на Exchange посетете следния уеб сайт на Microsoft: