2008-09-24 106 views
3

我們正在開發一個.NET 2.0 winform應用程序。該應用程序需要訪問Web Services。但是,我們遇到與代理背後的用戶有關的問題。.NET客戶端應用程序:如何在代理中訪問Web服務?

流行的Windows備份應用程序(想想Mozy)提供了一個適度複雜的對話框窗口,專用於代理設置。然而,重新實現另一個代理處理邏輯和GUI看起來對我來說總是浪費時間。

處理代理與.NET客戶端應用程序的最佳方式是什麼?

更具體地說,我們有一個用戶在Internet Explorer中記錄了他的代理設置(包括用戶名和密碼)的情況,因此.NET的默認代理行爲應該工作。然而,在啓動IE時仍然提示用戶輸入用戶名和密碼(這兩個字段都是預先完成的,用戶只需點擊確定) - 我們的winform應用程序仍然無法處理代理。

我們應該如何強制在啓動IE時不提示用戶輸入用戶名和密碼?

回答

11

把這個應用程序的配置文件:

<configuration> 
    <system.net> 
    <defaultProxy> 
     <proxy autoDetect="true" /> 
    </defaultProxy> 
    </system.net> 
</configuration> 

和您的應用程序將使用代理服務器設置從IE瀏覽器。如果您可以使用代理服務器在IE中查看您的Web服務,則應該能夠從應用程序中「查看」它。

0

最簡單的方法是使用IE瀏覽器的代理設置。

1

使用.NET WebProxy類進行調查。它支持自動選擇正確的默認設置。

2

使用WebProxy和WebRequest類。將它包裝到您自己的圖書館中一次,然後在任何需要使用代理的地方使用。

0

如果你打開IE,點擊確定進入代理對話框,然後(讓IE打開)嘗試連接你的winforms應用程序,然後你的應用程序工作?或者,無論如何,你的應用程序無法處理代理?

0

您的客戶是否在同一網絡上遇到代理問題(即他們是否都使用相同的代理服務器)?

0

我認爲提問者明白他必須使用WebProxy,如果用戶需要代理,問題是「我如何獲得IE的代理設置,所以我不必要求用戶輸入他們到我的應用程序作爲好?」

System.Net.WebProxy.GetDefaultProxy已過時,您必須使用System.Net.WebRequest.DefaultWebProxy。有一篇文章描述它在http://msdn.microsoft.com/en-ca/magazine/cc300743.aspx

相關問題