2010-07-26 34 views
2

我正在編寫一個將XML張貼到web服務的應用程序,並且在服務器上不斷迎接WebException聲明HTTP 500錯誤。無論如何要查看錯誤的具體細節類似於Internet Explorer中的「不友好」的錯誤消息嗎?在Visual Studio中顯示不友好的HTTP 500錯誤

「查看詳細信息」按鈕似乎沒有列出我正在尋找的確切服務器響應。

謝謝。

下面的代碼和確切的錯誤信息:

static void Main(string[] args) 
    { 


     //create requester 
     WebRequest request = WebRequest.Create("http://server.com/service"); 

     //create string of xml to transfer 
     string xml = "<xml>some xml goes here</xml>"; 

     //convert string to byte array 
     byte[] transfer = Encoding.ASCII.GetBytes(xml); 

     //set up method 
     request.Method = "POST"; 

     //set up content type 
     request.ContentType = "text/xml"; 

     //set up content length 
     request.ContentLength = transfer.Length; 

     //open data stream 
     Stream myStream = request.GetRequestStream(); 

     //send the data 
     myStream.Write(transfer, 0, transfer.Length); 

     //Create object to capture response 
     WebResponse response = request.GetResponse(); 

     //Create object to convert response to readable form 
     StreamReader reader = new StreamReader(response.GetResponseStream()); 


     //Reach each line of the response stream and display on command line 
     string str = reader.ReadLine(); 
     while(str != null) 
     { 
      Console.WriteLine(str); 
      str = reader.ReadLine(); 
     } 

     Console.ReadLine(); 

    } 

System.Net.WebException was unhandled Message="The remote server returned an error: (500) Internal Server Error." Source="System" StackTrace: at System.Net.HttpWebRequest.GetResponse() at SOAP_Test.Program.Main(String[] args) in :line 41 at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() InnerException:

+0

你使用HttpWebRequest類嗎? – 2010-07-26 14:24:17

+0

你是否控制網絡服務?如果這是一個你在某個地方打電話的黑匣子,那麼你無法控制發回的東西(如果有的話)。如果您控制該服務,您是否可以發佈關於如何處理錯誤的代碼? – 2010-07-26 14:25:26

+0

我正在使用HttpWebRequest類。不幸的是,這是一個黑匣子。但我確實知道服務器應該回應什麼。 我已經用代碼更新了我的帖子。 – grease357 2010-07-26 14:43:16

回答

1

捕獲異常並顯示消息和的InnerException(如果可用)。