2017-05-01 1 views
0

Nous contactons un service Web Azure pour envoyer certaines informations.Une exception Fiddler différente de l'exception C#

Lorsque j'envoie la requête à partir de C#, l'exception fournit la pile sur le côté envoi.

Lorsque j'envoie la requête à partir de Fiddler, l'exception fournit la pile de données du côté réception.

Je souhaite obtenir la trace de pile côté réception dans la journalisation, car elle est plus utile. auriez vous des idées pour faire ça? A ma connaissance Fiddler utilise HttpRequest tout comme C#

code en C#:

HttpWebRequest r = (HttpWebRequest)WebRequest.Create(Adrewss); 
... 

HttpWebResponse response = (HttpWebResponse)r.GetResponse(); 

catch (Exception ex) 
{ 
    logEntry.Details = ex.ToString(); 

Permettez-moi de savoir si plus d'information est nécessaire!

donc C# ex =

500) Erreur interne du serveur. à System.Net.HttpWebRequest.GetResponse()

Fiddler ex:

{ "Post": "System.NullReferenceException:. Référence d'objet non définie à une instance d'un objet \ r \ n au test. Gateway.Models.Process.Transformer.GetTypeCode (Type de chaîne) \ r \ n etc

+0

Quelle est l'URL à laquelle vous tentez d'accéder – loneshark99

+0

Url d'un service Web Azur – nldev

Répondre

1

Fiddler n'utilise pas du tout HTTPWebRequest, il parle à un socket brut. Je suppose que vous montrez le texte brut de le corps de la réponse dans Fiddler, alors que vous utilisez l'exception (plutôt que le texte du corps de la réponse) dans votre code .NET

+0

Correct, utilisé le code suivant pour le résoudre: si (ex est WebException) { var webEx = (WebException) ex; si (webEx.Status == WebExceptionStatus.ProtocolError) { en utilisant (flux responseStream = webEx.Response.GetResponseStream()) en utilisant (StreamReader responseReader = new StreamReader (responseStream)) { additionalErrorInfo = responseReader.ReadToEnd () } – nldev