2009-06-30 46 views
3

我有一个相当混乱的问题。使用旧代理设置的Web服务?

Web服务 - 被Win32应用程序直接调用,以及其他各种网络应用程序
Web服务B - 通过相同的Win32应用程序和一组不同的其他Web应用程序

我的工作增加了直接调用将B引用到A中,以便我们可以使用B提供的功能,而无需手动将该代码手动重写/重新集成到A中。我在我的PC上开发了A的开发副本,并且正在调用B的测试副本在远程服务器上(我们的托管服务提供商通过互联网访问测试服务器)

我相信我的代码已准备好进行测试,但每次我去我的本地副本上测试它,我得到以下错误。

无连接可以作出,因为目标机器积极地拒绝它10.1.X.XX:8080

at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) 
at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) 
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) 

在错误信息中列出的内部IP是我们的旧的BorderManager网关。它已不再使用,我已经检查了所有Machine.Configs,Web.Configs,注册表项,甚至在我的PC上以2MB为全部文件进行全文搜索以查找其中列出的IP。我再次检查了Internet选项连接设置,但是这是由公司范围内的组策略管理的。我打电话给一个网络人员,以验证IP在当前应用的策略中没有列出。

我找不到它,除非尝试跨越使用它的代码并获取上面显示的异常。

我有使用Web服务B的代码是:

Dim oZip As New ZipTerr.ZIPTerr 
oZip.Url = "https://test.test.com/ZIPTerr/ZIPTerr.asmx" ' This really shouldn't be hardcoded... 
oZip.PreAuthenticate = True 
oZip.Credentials = New System.Net.NetworkCredential("username", "password") 
aCity = oZip.GetCities(pstrZip, Date.Now()) 

它未能在调用oZip.GetCities()与上述错误。错误信息中的IP并不表示它已从我们的本地网络中取出,它是一个10 *私有IP,而测试服务器有一个有效的可公开访问的IP。

任何想法??

更新: 两个Web服务是.NET 2.0中

+0

有无处否则这个网址是,就.NET而言。我建议你找出BorderManager网关在出现时如何运作。也许还有一部分还在。顺便说一句,我认为你的意思是“WinForms”而不是“Win32”。 – 2009-06-30 21:04:16

回答

4

因为代码是作为服务运行的基本System.Net库将不会被使用在这种情况下,Internet设置值。

对于如何在.config文件中没有特定设置的情况下派生代理设置的详细信息,MS有点粗略。

这里有一些事情要尝试: -

一个命令行中使用: -

ProxyCfg -d 

这将消除由WinHTTP的组件所使用的任何代理服务器设置(这是设计就是这样被使用在.NET出现之前通过代码设置服务器)。

ProxyCfg -u 

将当前用户的Internet代理设置复制到WinHTTP使用的系统范围设置。

更好的配置代理服务器设置自己在调用应用程序的web.config: -

<system.net> 
    <defaultProxy enabled="true"> 
    <!-- if above set to true configure below accordingly if false delete below--> 
    <proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/> 
    </defaultProxy> 
</system.net> 
+0

我能够通过使用Web.config中的代码段并设置enabled =“false”来修复它。谢谢你的帮助! – 2009-06-30 21:59:48

0

最佳猜测:

要么错误是来自代码,是不是你的机器就快到了。 Web服务A和B是否在您的计算机上运行?

或者它是在dll的源代码不在你的机器上的dll中进行硬编码的。

希望这有助于

西拉