连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败

Man*_*ish 11 c# asp.net-mvc web-services asp.net-web-api

我有一个问题:

连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应URL.

我也遇到了这样的问题:

System.IO.IOException:无法将数据写入传输连接:远程主机强制关闭现有连接

System.Net.WebException:操作已在System.Net.WebClient.UploadFile超时(Uri地址,String方法,String fileName)

我知道这个问题之前已经问过了,但是相信我,我几乎尝试过每一个问题.

奇怪的是这个问题根本没有出现在我的最后,只有当客户试图使用哪个不是常数时.有一段时间我的应用程序也在他们的最后工作正常

我想要完成的是我创建了一个桌面应用程序(Win Forms&C#)并尝试登录客户端,同时向我的php api服务器发送请求,该服务器托管在GODaddy上.

var request = (HttpWebRequest)WebRequest.Create("url");
if (request != null)
{
    #region System.Net.WebException
    request.Method = "POST";
    if (!string.IsNullOrEmpty(body))
    {
        var requestBody = Encoding.UTF8.GetBytes(body);
        request.ContentLength = requestBody.Length;
        request.ContentType = "application/json";
        using (var requestStream = request.GetRequestStream())
        {
            requestStream.Write(requestBody, 0, requestBody.Length);
        }
    }
    else
    {
        request.ContentLength = 0;
    }
    request.Timeout = 15000;
    request.CachePolicy = new RequestCachePolicy(RequestCacheLevel.BypassCache);

    string output = string.Empty;
    try
    {
        using (var response = (HttpWebResponse)request.GetResponse())
        {
            using (var stream = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(1252)))
            {
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    while (!stream.EndOfStream)
                    {
                        output += stream.ReadLine();
                    }
                    output = stream.ReadToEnd();
                }
            }
        }
    }
    catch
    {
        // Excaption Caught here
    }
}
Run Code Online (Sandbox Code Playgroud)

请帮帮我.

提前致谢.

wal*_*gic 2

尝试添加这个...

request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10;
request.ServicePoint.ConnectionLimit = 12;
Run Code Online (Sandbox Code Playgroud)

MSDN 文章建议每个 CPU 有 12 个连接,因此限制为 12,因为它是由 GoDaddy 托管的,所以我确信服务器资源是有限的。