Symptomen
U probeert een auto-proxy om code te genereren op basis van het schema van Microsoft Exchange Server 2010 Service Pack 1 (SP1). In dit geval wordt ontbreekt de volgende regel in de proxy-code:
[System.Web.Services.Protocols.SoapHeaderAttribute("ExchangeImpersonation")]
Daarom bieden de automatisch gegenereerde-proxy's geen ondersteuning voor Exchange Impersonation.This probleem is van invloed op de volgende drie bewerkingen:
-
GetUserOofSettings
-
SetUserOofSettings
-
GetUserAvailability
Oplossing
Dit probleem oplossen door de volgende updatepakket te installeren:
2579150 Beschrijving van Update Rollup 4 voor Exchange Server 2010 servicepack 1
Tijdelijke oplossing
U kunt dit probleem omzeilen, gebruiken Microsoft Exchange Web Services (EWS) beheerde API 1.1 de gegenereerde klassen in het schema te wijzigen. Voeg hiervoor de volgende regel in de code van de proxy:
[System.Web.Services.Protocols.SoapHeaderAttribute("ExchangeImpersonation")]
Hieronder is een voorbeeld voor de bewerking GetUserOofSettings . Oorspronkelijke code:
[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]));}
Gewijzigde code:
[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]));}
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Meer informatie
Ga naar de volgende Microsoft-website voor meer informatie over de werking van de GetUserOofSettings :
Algemene informatie over de werking van de GetUserOofSettingsGa naar de volgende Microsoft-website voor meer informatie over de werking van de SetUserOofSettings :
Algemene informatie over de werking van de SetUserOofSettingsGa naar de volgende Microsoft-website voor meer informatie over de werking van de GetUserAvailability :
Algemene informatie over de werking van de GetUserAvailabilityGa naar de volgende Microsoft-website voor meer informatie over Exchange imitatie: