Síntomas
Intenta generar código proxy basándose en el esquema de Microsoft Exchange Server 2010 Service Pack 1 (SP1). En esta situación, la siguiente línea es falta en el código proxy:
[System.Web.Services.Protocols.SoapHeaderAttribute("ExchangeImpersonation")]
Por lo tanto, los servidores proxy generados automáticamente no admiten Exchange Impersonation.This problema afecta las tres operaciones siguientes:
-
GetUserOofSettings
-
SetUserOofSettings
-
GetUserAvailability
Solución
Para resolver este problema, instale el paquete siguiente:
2579150 Descripción de paquete acumulativo de actualizaciones 4 para Exchange Server 2010 Service Pack 1
Solución alternativa
Para evitar este problema, utilice Microsoft Exchange Web Services (EWS) Managed API 1.1 para cambiar las clases generadas en el esquema. Para ello, agregue la siguiente línea en el código proxy:
[System.Web.Services.Protocols.SoapHeaderAttribute("ExchangeImpersonation")]
A continuación es un ejemplo de la operación de GetUserOofSettings . Código original:
[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]));}
Código modificado:
[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]));}
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".
Más información
Para obtener más información sobre la operación de GetUserOofSettings , visite el siguiente sitio Web de Microsoft:
Información general sobre la operación de GetUserOofSettingsPara obtener más información sobre la operación de SetUserOofSettings , visite el siguiente sitio Web de Microsoft:
Información general sobre la operación de SetUserOofSettingsPara obtener más información sobre la operación de GetUserAvailability , visite el siguiente sitio Web de Microsoft:
Información general sobre la operación de GetUserAvailabilityPara obtener más información acerca de la suplantación de Exchange, visite el siguiente sitio Web de Microsoft: