2010-02-18 118 views
1

我有一個與Web服務通信的控制檯應用程序。他們都在同一臺機器上。連接到網絡時無法訪問Web服務:: HTTP 407

當我在禁用LAN的情況下訪問Web服務時,它連接時沒有問題。但是,如果局域網已啓用並連接到我們的辦公網絡,則會收到此錯誤:

「需要HTTP 407代理驗證 - ISA服務器需要授權才能完成請求,拒絕訪問Web代理服務。

我們一直在尋找問題的原因三天了。我們嘗試了所有我們能想到的。任何想法是什麼導致這個問題?

其他說明: - 本機處於工作組設置但具有DNS後綴(computer.local)。當訪問Web服務,我們鍵入地址爲「http://machine.computer.local/service.asmx

  • 我跟IT人員,他們說,我們沒有一個ISA服務器安裝

  • 沒有「代理「在IE中設置。

  • 機器處於薄荷狀態。

+0

我會從Wireshark和Fiddler2等網絡調試工具開始。 – Foole 2010-02-18 07:18:07

+0

感謝您的提示。 :)在你看來,哪個更適合這兩種? – Ian 2010-02-18 08:03:37

+0

Wireshark不那麼用戶友好,但對於較低級別的調試更好。我只能在用Fiddler2解決它之後才嘗試Wireshark。 NB Wireshark不能在Windows下的回送接口上工作。 – Foole 2010-02-18 10:26:47

回答

1

很顯然,我已經交談過IT人員沒有意識到企業範圍的ISA服務器。

使用Wireshark,我將數據轉儲到一個HTML文件(一個標準的HTTP 407錯誤頁面)。它清楚地顯示了ISA服務器的主機名和IP地址。

總之,問題在於ISA服務器。雖然如果託管該站點的IIS服務器位於機器本身(本地主機)上,爲什麼機器會聯繫ISA服務器仍然是一個謎。

解決方法:使用bypassonlocal屬性。

<configuration> 
    <system.net> 
     <defaultProxy> 
     <proxy proxyaddress="<ISA-SERVER>" bypassonlocal="true"/> 
     </defaultProxy> 
    </system.net> 
</configuration> 
0

嘗試添加下面一行到你的hosts文件:

127.0.0.1 machine.computer.local 
+0

我們已經試過了。問題是,當我們嘗試在本地ping「machine.computer.local」時,返回的IP不是127.0.0.1。 – Ian 2010-02-18 08:02:42

+0

我認爲你將有更多的機會在serverfault.com上獲得正確的答案。投票遷移。 – 2010-02-18 08:06:21

0

下web.config 「配置」 部分補充一點:

<system.net> 
    <defaultProxy enabled="true" useDefaultCredentials="true"></defaultProxy> 
</system.net> 

然後就像一個魅力!