2010-10-02 21 views
5

我們有一個調用webservice的ASP.NET網站。如果ASP.NET網站上沒有啓用模擬,則對Web服務的調用速度很慢 - 使用WireShark,我們看到它正在製作WPAD查詢。從ASP.NET調用webservice的WPAD查詢

如果模擬已打開並且它正在模擬管理員用戶,則對Web服務的調用速度很快 - 使用WireShark我們不會進行WPAD查詢。

有沒有人見過這個?我們如何防止NetworkService(默認情況下是ASP.NET網站使用的網絡服務)不會生成WPAD查詢。

爲什麼冒充管理員用戶不會導致WPAD查詢?

這是我們在Wireshark中看到的條目:

NBNS名稱查詢NB WPAD < 00>

回答

4

我有完全相同的問題。

WPAD代表Web Proxy Auto Discovery。

協議的細節可以在維基百科上找到。

當您在Internet Explorer->工具 - > Internet選項 - >連接 - > LAN設置中選中「自動檢測設置」時,機器將始終使用WPAD協議在網絡之前查詢自動檢測代理使任何網絡連接。

即使設置在IE中,它也適用於整臺機器,因此任何客戶端都試圖連接到該機器的Web服務。這也是IE中的默認設置。

打開WPAD時,當進行任何Web連接時,客戶機將查詢您的DNS和WINS服務器以查找自動代理,並且還會產生一系列要求自動代理的廣播。

直到收到響應或者某個超時時間(據我所知,超時時間是任意的 - 也許某些WPAD精明的人可以提供答案?),連接將不會經過。

您在Wireshark中看到的「NBNS名稱查詢NB WPAD」消息是查詢WINS服務器以查找自動代理的客戶端。如果您沒有看到服務器將這些數據包發送到的答覆,那麼您的網絡設置有問題。服務器應該回覆沒有自動代理或自動代理服務器的詳細信息。

我們遇到的問題是,Windows Server 2008 DNS服務器默認配置爲忽略WPAD請求(即根本不回答) - 這就是我們作爲DNS/WINS服務器運行的內容。我們沒有運行自動代理,所以Windows Server 2008 DNS服務器應該回復「否」。因爲它沒有,我們的客戶會在放棄和初始連接之前枉費30秒左右的時間。

好消息是,有三種解決方案,這一問題:

1)關閉IE中「自動檢測設置」任何機器上被用作客戶端的Web服務

2)編輯machine.config或app.config的Web服務客戶端應用程序繞過本地代理設置。你可以找到關於如何做到這一點這裏的信息:

http://support.microsoft.com/kb/968699

3)確保你的網絡的DNS服務器被配置爲正確地WPAD請求作出迴應。

最後,這裏是對WPAD一些信息,我發現非常有用的鏈接在調試這個問題我自己:

http://www.isaserver.org/articles/ISA2004_ClientAutoConfig.html

希望這有助於!

+1

非常感謝你回答這個問題。你剛剛救了我一週! – Sune 2015-09-17 10:14:10