2009-09-06 3 views
0

테스트 웹 서비스를 만들고 SoapException을 throw하려고합니다. 하지만 브라우저를 통해 서비스를 열면 내부 서버 오류 - 500이 표시됩니다.ASP.NET의 클라이언트에서 webservice soapexception 응답을 표시합니다.

수동으로 생성 한 SoapRequest (stringbuilder)를 보내서 수동으로 사용하려고하면 "Servererror - 500"오류가 발생합니다. Visual Studio 자체 "WebResponse response = req.GetResponse()"

어쨌든 나는 "응답 XML의 오류"를 볼 수 있습니다.

답변

-1

5-6시간을 위해를 통하여 서핑 후 마침내 여기있다 ...... 그것을 가지고 서버 코드

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

서비스에 문제가있는 것 같고 클라이언트 측이 아닌 서버 측에서 디버깅해야합니다. 나는 당신이 당신의 클라이언트 코드와 웹 브라우저에 문제가 있기 때문에이 결론에 도달했다.

.NET을 사용한다고 가정하면 서버에 ASP.NET 오류가 표시됩니까? 정보는 this article을 참조하십시오.

업데이트 :

그래서 서버에 오류를 던지고 클라이언트에 오류 텍스트를 얻고 싶은거야? 서버의 오류로 인해 500 오류 메시지가 발생하고 XML을 클라이언트로 반환하지 않을 것입니다. 아마도 뭔가를 SoapException 생성자에 전달할 수 있습니까?

docs for SoapException을 보셨습니까? SoapException의 Detail 속성을 사용하여 정보를 전달하는 몇 가지 예가 있습니다.

+0

그냥 [WebMethod] 공개 무효 GetSoapException() { 던져 새로운 SoapException(); } 따라서 잘못되었을 가능성은 없습니다. – Subhasis

+0

오른쪽 ... 나는 뭔가를 SoapException 생성자에 전달할 수있다. (사실 나는 이미 시도했다.)하지만 결국에는 그 예외를 던질 필요가있다. 나는 틀린가? 예외를 throw하면 "서버 오류 - 500"이 항상 발생합니까? 그렇다면 어떻게 응답 XML에서 오류를 얻을 수 있습니다. – Subhasis

0

브라우저에서 asmx를 사용한다고 가정하면 작동하는지 확인할 수 있습니까?

수동으로 반응을 얻고있다

, 다음 사용하십시오 :

+0

IE에서 asmx를 직접 열고 메서드를 호출하면 아니요, 다음 화면은 "HTTP 500 내부 서버 오류"입니다. – Subhasis

관련 문제