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被错误地转义了
然后检查防火墙相关问题
regedit.exe
(运行时写入)中更改任何内容时,在进行任何更改后,请关闭注册表编辑器,并在运行时键入IISRESET
重置Internet信息服务。然后登录到您的环境IRIS.REPORTMANAGER.EXE运行它
我遇到了类似的问题,必须使用以下方法将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。