2012-03-27 152 views
0

我遇到了我認爲是奇怪的問題,我希望有人能幫助我解決問題。失敗的HTTPS請求

幾年前,我寫了一個C#,.Net程序,它執行一些標準的HTTPS HttpWebRequests到一個網站,並從這些請求中返回的「網頁」中提取信息。該程序有一個調度程序,每五分鐘發出一次這些請求。該計劃已連續幾年24小時順利運行。

但是,從幾天前開始,https請求現在超時,即使url仍然有效並且能夠通過瀏覽器手動訪問,但沒有數據正在返回。在執行https請求的客戶端程序中沒有任何更改。

爲了嘗試解決這個問題,我啓動了一個名爲「Charles」的程序(類似於Fiddler)。 Charles使用「中間人」來允許解密https請求。奇怪的是,當Charles運行並設置爲攔截https請求時,請求正常工作並返回數據。但是,只要Charles關閉或其SSL代理關閉,https請求就會失敗。

我試着用Fiddler做同樣的練習,但是當Fiddler運行時請求不成功。他們只在查爾斯跑步時才工作。

我完全在這一點上難住,並歡迎任何有關如何解決這個問題的建議。

回答

0

感謝微軟的Eric Lawrence(Fiddler的作者)解決了這個問題。埃裏克說:

你打一個問題,因爲這個網站是在 的HTTPS握手的開始發送TLS警告,並且當 發生.NET就會超時。見 http://blogs.msdn.com/b/fiddler/archive/2012/03/29/https-request-hangs-.net-application-connection-on-tls-server-name-indicator-warning.aspx。 由於 警告與WinXP上HTTPS 堆棧中不存在的TLS擴展相關,因此Windows Vista及更高版本中只有reprov問題。