2015-10-16 32 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

相关问题