2009-03-05 127 views
0

我设置了一个Web服务,并且我尝试使用Proxy类从我的httpmodule调用它,它只会超时。我做了更多的测试,并尝试了WebRequest,并且也超时了。如果我指定了错误的url,它会抛出一个404异常,所以看起来应该是。从网络浏览器调用Web服务可以正常工作,所以这不是问题。有任何想法吗?从httpmodule调用Web服务

+0

请显示一段代码。对于您是使用WebProxy还是使用“添加服务引用”/“添加Web引用”生成的类,响应会感到困惑。 – 2009-03-07 12:17:01

回答

1

HttpModules与其他任何代码没有区别。如果你可以从其他地方做到这一点,你可以从模块中完成。既然你没有提及需要代理的任何事情,我不清楚为什么你在这种情况下使用Proxy类。尝试在不需要时使用代理服务器可能会导致超时,因为您正在向不存在的网络代理发送请求。

你能不能只用一个Web ReferenceWebRequest连接到服务?

+0

我没有理由需要使用代理,我只是认为它使事情变得更容易。尝试两种方式失败。 网址是否必须是静态的才能使Web引用起作用? Web服务的主机将会变化,所以我不认为这会起作用。 – mach77 2009-03-05 23:42:47

0

你确定你和web服务之间没有代理服务器吗?.Net很好地解决了这个问题,但是我发现很多问题让框架试图理清代理的位置。

这里是一个硬编码的解决方案,但是任何形式的不是最好的做法显示了如何将代理连接到Web客户端的请求..

WebProxy proxy = new WebProxy("111.222.333.444:8080"); 
proxy.Credentials = CredentialCache.DefaultCredentials; 
WebClient wc = new WebClient(); 
wc.Proxy = proxy; 
// do your other stuff 

香港专业教育学院发现的.Net真正的斗争,当端口心不是80时服务器平台没有在Internet Explorer中设置代理服务器,我宁愿说实话,我相信默认只是看当地的互联网连接设置,但不要引用我的那个