远程服务器返回错误503服务器不可用

时间:2013-01-24 14:53:28

标签: c# httpwebrequest httpwebresponse http-status-code-503 system.net.webexception

我有一个用C#.Net 2.0编写的客户端服务器应用程序。我的客户端/服务器响应/请求代码运行了4年(!)。最近,在特定的机器上,客户端无法连接到服务器:

代码行上的

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  

WebException:远程服务器返回错误:(503)服务器不可用   Message =“远程服务器返回错误:(503)服务器不可用。”
  状态System.Net.WebExceptionStatus.ProtocolError

我认为这个问题是特定于机器的,因为我从未在任何其他机器上遇到此问题。

我需要在那台机器上配置什么吗?我错过了什么?

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(string.Format("http://{0}:{1}/", server, httpPort));
request.ContentType = "application/x-www-form-urlencoded";
string msgStr = msgString;
byte[] buffer = Encoding.UTF8.GetBytes(msgStr);
request.ContentLength = buffer.Length;
request.Method = "POST";

try {
    System.IO.Stream requestStream = request.GetRequestStream();
    requestStream.Write(buffer, 0, buffer.Length);
    requestStream.Close();
    requestStream.Dispose();

    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

    byte[] inBuffer = new byte[10000];
    Stream responseStream = response.GetResponseStream();
    int iBytes = responseStream.Read(inBuffer, 0, inBuffer.Length);

    StringBuilder sb = new StringBuilder(10000);

    while (iBytes > 0) {
        sb.Append(Encoding.UTF8.GetString(inBuffer, 0, iBytes));
        iBytes = responseStream.Read(inBuffer, 0, inBuffer.Length);
    }

    response.Close();
    responseStream.Close();
    responseStream.Dispose();

    if (!string.IsNullOrEmpty(sb.ToString())) {
        message = HandleMessage(sb.ToString());
    } else { //bug 58
        message = HandleEmptyMessage(msgString);
    }
}  catch (System.Net.WebException we) {
    _connected = false;
    EventsHelper.AsyncFire(ConnectionLost, this, EventArgs.Empty);
    throw new Exception(we.Message);
}

0 个答案:

没有答案