Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;连接尝试失败,因为连接方在一段时间后没有正确响应”;使用WebClient_C#_Sockets_Webclient - Fatal编程技术网

C# &引用;连接尝试失败,因为连接方在一段时间后没有正确响应”;使用WebClient

C# &引用;连接尝试失败,因为连接方在一段时间后没有正确响应”;使用WebClient,c#,sockets,webclient,C#,Sockets,Webclient,我使用的代码在本地机器上运行,但当我在服务器上尝试相同的代码时,它会抛出错误 连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立了连接 失败,因为连接的主机未能响应 这是我的密码: WebClient client = new WebClient(); // Add a user agent header in case the // requested URI contains a query. //client.Headers.Add ("ID", "Mozilla/4.0 (co

我使用的代码在本地机器上运行,但当我在服务器上尝试相同的代码时,它会抛出错误

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

这是我的密码:

WebClient client = new WebClient();
// Add a user agent header in case the 
// requested URI contains a query.
//client.Headers.Add ("ID", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
Stream data = client.OpenRead("http://" + Request.ServerVariables["HTTP_HOST"] + Request.ApplicationPath + "/PageDetails.aspx?ModuleID=" + ID);
StreamReader reader = new StreamReader(data);
string s = reader.ReadToEnd();
Console.WriteLine(s);
data.Close();
reader.Close();
我犯了一个错误

Stream data = client.OpenRead("http://" + Request.ServerVariables["HTTP_HOST"] + Request.ApplicationPath + "/PageDetails.aspx?ModuleID=" + ID);

这是由于任何防火墙设置造成的吗?

是此代码在浏览器中可访问的URL吗

http://" + Request.ServerVariables["HTTP_HOST"] + Request.ApplicationPath + "/PageDetails.aspx?ModuleID=" + ID
您需要验证的第一件事是您正在创建的URL是否正确。然后检查浏览器,查看它是否正在浏览。然后使用该工具检查通过网络传输的内容。可能是通过代码调用的URL被错误地转义了

然后检查防火墙相关问题

  • 第一种可能性:相关Web.config文件中的加密字符串应与在连接字符串中输入的相同(如上所示) 此外,当您在“注册表编辑器”或
    regedit.exe
    (运行时写入)中更改任何内容时,在进行任何更改后,请关闭注册表编辑器,并在运行时键入
    IISRESET
    重置Internet信息服务。然后登录到您的环境

  • 运行时键入Services.msc并检查:

  • ASP.NET状态服务的状态已启动。如果没有,则右键单击它,通过“属性”,将其启动类型更改为“自动”

  • 该特定银行的Iris ReportManager服务是否已启动。如果正在运行,它将显示列表中启动的“IRIS报表管理器服务”。如果没有,请单击
    IRIS.REPORTMANAGER.EXE运行它

  • 然后再次重置IIS


    我遇到了类似的问题,必须使用以下方法将URL从字符串转换为Uri对象:

    Uri myUri = new Uri(URLInStringFormat, UriKind.Absolute);
    
    (URLInStringFormat是您的URL) 尝试使用Uri而不是字符串进行连接,如下所示:

    WebClient client = new WebClient();
    client.OpenRead(myUri);
    

    web.config
    中显式设置代理地址解决了我的问题

    <system.net> 
        <defaultProxy> 
                <proxy usesystemdefault = "false" proxyaddress="http://address:port" bypassonlocal="false"/> 
        </defaultProxy> 
    </system.net>
    
     <system.net>
        <defaultProxy enabled="false" >
        </defaultProxy>
      </system.net>
    
    
    

    我知道这张票是旧的,但我刚刚遇到了这个问题,我想我会发布发生在我身上的事情以及我是如何解决的:

    在我的服务中,我正在呼叫另一个web服务。像傻瓜一样,我在发布web服务时忘了确保DNS设置正确,因此发布web服务时,我的web服务试图从api.myproductionserver.local而不是api.myproductionserver.com调用。导致超时的是后端web服务


    不管怎么说,我想我会把这个传下去。

    我有这个问题。代码在本地运行时运行正常,但在服务器上运行时运行不正常。 使用psPing()我意识到应用程序端口没有返回任何内容。 原来是防火墙问题。我没有在Windows防火墙中启用我的应用程序端口

    管理工具>具有高级安全性的Windows防火墙 将我的应用程序端口添加到入站规则中,它开始工作


    不知何故,应用程序端口号发生了变化,所以花了一段时间才弄清楚到底发生了什么-所以我想我会分享这种可能性,以防它为其他人节省时间

    它可能是由服务器中的代理设置发出的。您可以通过禁用代理设置进行尝试,

    我知道这篇文章是5年前发布的,但最近我遇到了这个问题。这可能是由公司网络限制引起的。因此,我的解决方案是让
    WebClient
    通过代理服务器进行调用。这是为我工作的代码。希望能有帮助

            using (WebClient client = new WebClient())
            {
                client.Encoding = Encoding.UTF8;
                WebProxy proxy = new WebProxy("your proxy host IP", port);
                client.Proxy = proxy;
                string sourceUrl = "xxxxxx";
                try
                {
                    using (Stream stream = client.OpenRead(new Uri(noaaSourceUrl)))
                    {
                        //......
                    }
                }
                catch (Exception ex)
                {
                    throw;
                }
            }
    

    我知道这是一篇老文章,但我遇到了完全相同的问题,我通过关闭导致问题的
    MALWAREBYTES
    程序来使用它。

    web.config中添加以下代码块解决了我的问题

    <system.net> 
        <defaultProxy> 
                <proxy usesystemdefault = "false" proxyaddress="http://address:port" bypassonlocal="false"/> 
        </defaultProxy> 
    </system.net>
    
     <system.net>
        <defaultProxy enabled="false" >
        </defaultProxy>
      </system.net>
    

    在我的例子中,我遇到了这个错误,因为我的域没有列在服务器上的Hosts文件中。 如果将来还有其他人面临同样的问题,请尝试在主机文件中输入并检查

    路径:C:\Windows\System32\drivers\etc

    FileName:hosts

    尝试在browser@EhsanUllah是的,我已经完成了这一步,当我复制并粘贴到另一个选项卡(浏览器选项卡)时,生成的URL工作正常,最近遇到了此错误消息,因为我在VNP中,不允许我访问S3 bucket。如果有人面临此问题,请将其放在此处可能会有所帮助是的,我已经检查过了,并且它创建了有效的URL,我已经尝试过此方法。您是否使用Fiddler验证正在传递的URL是否正确?当您完成代码时,Fiddler显示的调用状态是什么?我的代码在运行时正在工作VS,但我是在同一服务器上部署到IIS时得到它的。这样显式添加代理设置解决了问题。需要在此处添加什么代理地址。@Rajasekar网络中代理服务器的ip或url。