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

时间:2015-05-07 05:07:06

标签: c# asp.net-mvc web-services asp.net-web-api

我遇到了问题:

  

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

我也遇到问题:

  

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

  

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

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

奇怪的是这个问题根本没有出现在我的最后,只有当客户端尝试使用哪个不是常量时。有一段时间我的应用程序也可以正常工作。

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

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
    }
}

请帮帮我。

提前致谢。

2 个答案:

答案 0 :(得分:0)

尝试添加此内容...

C:\Projekte\playground\Modultest>make all
gcc -O0 -g -Wall -fmessage-length=0 -fprofile-arcs -ftest-coverage ./CUnit/headers ./CUnit/sources ./stub ./source ./test   --coverage -o  CUnit-Target
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find ./CUnit/headers: Permission denied
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find ./CUnit/sources: Permission denied
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find ./stub: Permission denied
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find ./source: Permission denied
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find ./test: Permission denied
collect2.exe: error: ld returned 1 exit status
makefile:54: recipe for target 'CUnit-Target' failed
make: *** [CUnit-Target] Error 1

MSDN文章建议每个CPU使用12个连接,因此限制为12,因为它由GoDaddy托管,因此我确定服务器资源有限。

答案 1 :(得分:0)

我想我得到了答案。想发布它以便它可以帮助其他任何人。

很可能是特定的机器问题或服务器问题,但在我的情况下,我试图设置Request.proxy = null,它就像一个魅力。