2009-06-30 68 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中進行硬編碼的。

希望這有助於

西拉

相關問題