Symptômes
Vous essayez de générer automatiquement du code proxy basé sur le schéma de Microsoft Exchange Server 2010 Service Pack 1 (SP1). Dans ce cas, la ligne suivante est manquante dans le code proxy :
[System.Web.Services.Protocols.SoapHeaderAttribute("ExchangeImpersonation")]
Par conséquent, les proxy généré automatiquement ne pas prennent en charge Exchange Impersonation.This problème affecte les trois opérations suivantes :
-
GetUserOofSettings
-
SetUserOofSettings
-
GetUserAvailability
Résolution
Pour résoudre ce problème, installez le correctif cumulatif suivant :
2579150 Description du correctif cumulatif 4 pour Exchange Server 2010 Service Pack 1
Solution de contournement
Pour contourner ce problème, utilisez Microsoft Exchange Web Services (EWS) Managed API 1.1 pour modifier les classes générées dans le schéma. Pour ce faire, ajoutez la ligne suivante dans le code proxy :
[System.Web.Services.Protocols.SoapHeaderAttribute("ExchangeImpersonation")]
Vous trouverez ci-dessous un exemple de l’opération GetUserOofSettings . Code d’origine :
[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]));}
Code modifié :
[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]));}
Statut
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.
Informations supplémentaires
Pour plus d’informations sur l’opération de GetUserOofSettings , visitez le site Web Microsoft suivant :
Informations générales sur l’opération de GetUserOofSettingsPour plus d’informations sur l’opération de SetUserOofSettings , visitez le site Web Microsoft suivant :
Informations générales sur l’opération de SetUserOofSettingsPour plus d’informations sur l’opération de GetUserAvailability , visitez le site Web Microsoft suivant :
Informations générales sur l’opération de GetUserAvailabilityPour plus d’informations sur l’emprunt d’identité Exchange, visitez le site Web Microsoft suivant :