2009-09-06 12 views
0

J'essaie de faire un Webservice de test et de lancer une exception SoapException. Mais quand j'ouvre le service par le navigateur, il montre l'erreur interne de serveur - 500.show webservice réponse soapexception dans le client dans ASP.NET

Si j'essaye de le consommer manuellement en envoyant un SoapRequest créé manuellement (dans stringbuilder), j'obtiens la même erreur "Servererror - 500" dans Visual Studio lui-même dans la ligne "WebResponse response = req.GetResponse()"

Y at-il de toute façon je peux réellement voir le "défaut dans la réponse XML".

Répondre

-1

après le surf par 5-6 heures finalement obtenu ...... voici:

Lorsque vous obtenez la réponse manuellement, utilisez ce qui suit:

try 
{ 
    WebResponse response = req.GetResponse();     
    Stream str = response.GetResponseStream(); 
    StreamReader rdr = new StreamReader(str); 
    Response.Write(rdr.ReadToEnd());   
    Response.End(); 
} 
catch (WebException webEx) 
{ 
    Stream str = webEx.Response.GetResponseStream(); 
    StreamReader rdr = new StreamReader(str); 
    Response.Write(rdr.ReadToEnd());   
    Response.End(); 
} 
2

Il semble qu'il y ait un problème avec le service et vous devez le déboguer côté serveur plutôt que côté client. J'arrive à cette conclusion parce que vous avez un problème avec votre code client et un navigateur Web.

En supposant que vous utilisez .NET avez-vous activé l'affichage des erreurs ASP.NET sur le serveur? Voir this article pour info.

Mise à jour:

donc vous lancer une erreur sur le serveur et que vous souhaitez obtenir le texte d'erreur sur le client? Une erreur sur le serveur est supposée entraîner un message d'erreur 500 et il est peu probable de renvoyer un fichier XML au client. Peut-être que vous pouvez passer quelque chose au constructeur SoapException?

Avez-vous regardé le docs for SoapException? Ils ont quelques exemples de transmission d'informations à l'aide de la propriété Detail de SoapException.

+0

le code du serveur est juste [WebMethod] public void GetSoapException() { throw nouveau SoapException(); } Il n'y a donc aucune possibilité que ce soit faux. – Subhasis

+0

Droit ... Je peux passer quelque chose au constructeur SoapException (en fait je l'ai déjà essayé) mais à la fin j'ai besoin de jeter cette exception ... Ai-je tort ici? Le lancement d'une exception provoque-t-il toujours une erreur de serveur - 500? Si oui, comment puis-je obtenir la faute dans la réponse XML. – Subhasis

0

Pouvez-vous accéder à l'asmx (en supposant que vous utilisez asmx) dans le navigateur pour voir si cela fonctionne?

+0

Non son ne fonctionne pas si j'ouvre directement l'asmx à partir de IE et invoquer la méthode, l'écran suivant que je reçois est "HTTP 500 erreur interne du serveur" – Subhasis