2 votes

Comment identifier le problème réel lorsque vous recevez une exception générique de type SoapException : Le serveur n'a pas pu traiter la demande. de MS-CRM 4.0

J'ai récemment commencé à programmer avec CRM 4.0 et j'émets ces requêtes en utilisant le CrmService. Souvent, j'obtiens des valeurs erronées dans certaines propriétés de l'entité dynamique que j'utilise lorsque j'envoie la requête. Bien sûr, la requête échoue, j'intercepte l'exception et la consigne. Le problème est que c'est ce que j'obtiens :

System.Web.Services.Protocols.SoapException: Server was unable to process request.
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Microsoft.Crm.SdkTypeProxy.CrmService.Execute(Request Request)
   at MyEntity.Employee.ExecuteCreateRequest(CrmService service, DynamicEntity entity) in c:\Workspaces\One\...\Employee.vb:line 351\nSystem.Xml.XmlElement

ce qui n'est pas grand-chose.

Jusqu'à présent, j'éliminais certaines propriétés par intuition et je les testais à nouveau, puis j'essayais de deviner ce qui pouvait être erroné dans la valeur de la propriété. Existe-t-il un autre moyen d'obtenir des informations plus détaillées sur la cause de l'erreur afin que je puisse identifier plus rapidement le coupable.

2voto

Greg Owens Points 3858

Vous aurez besoin de votre catch pour attraper SoapException puis vous pouvez modifier les propriétés des détails ou des messages en fonction de vos besoins. Les propriétés Details contient probablement les indices que vous recherchez...

...
catch(SoapExcetion soapEx){
    console.writeLine("SoapException: " + soapEx.Detail);
//    console.writeLine("SoapException: " + soapEx.Message);
}
catch(Exception ex){
    console.writeLine("Exception: " + ex.Detail);
}

Vous pouvez également envisager d'activer le traçage sur le serveur CRM et d'examiner les fichiers journaux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X