2015-10-16 103 views
0

我構建了一個與遠程服務器通信的程序。當我按順序處理所有消息(使用JSON對象)時,它的行爲是正確的。但是,當我在線程中構建它時,它會返回遠程服務器返回一個錯誤:(500)內部服務器錯誤。HttpWebResponse導致線程中發生內部服務器錯誤

在配置遠程服務器時會出現問題嗎?從日誌中我可以看到請求會在0.5秒內打到遠程服務器。

以下是我如何與遠程服務器進行通信的代碼。

void Execute(){ 

    var httpWebRequest = (HttpWebRequest)WebRequest.Create(REMOTE_URL); 
    httpWebRequest.ContentType = "application/json"; 
    httpWebRequest.Method = "POST"; 

    using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
    {        
     streamWriter.Write(json); 
     streamWriter.Close(); 
    }       

    HttpWebResponse httpResponse = null; 
    try 
    { 
     httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();  
    } 
    catch (Exception exc) 
    { 
     // Internal Server Error exception caught here.  
    } 

    if (httpResponse != null) 
    { 
     using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
     { 
      string result = streamReader.ReadToEnd(); 
      // deserialize the result          
      streamReader.Close(); 
     }     
    } 
    httpResponse.Close(); 

} 

這裏是我如何開始線程。

ObjectManager o = new ObjectManager() 
Thread thread = new Thread(() => o.Execute(parameter)); 
thread.Start(); 

我在想這是線程或服務器配置中的一個問題。有什麼想法嗎?

回答

1

從我所看到的,線程沒有任何問題。

Error 500,表示服務器出現問題。 可能有多種可能性,其中之一就是服務器(應用程序)無法處理併發請求。 再次,您需要查看服務器上的錯誤以更好地瞭解最終發生的情況。

+0

感謝您的建議。不幸的是,它是一個遠程服務器,我無法訪問日誌。我只能通過捕捉異常並重新發布來解決問題。 – ydoow

相關問題