2011-07-14 20 views
2

我有一個C#.NET中的桌面應用程序,它非常頻繁地連接到一個ASMX Web服務。有兩個後臺工作人員非常頻繁地連接到這個Web服務。該應用程序還具有兩種Web瀏覽器控件,其形式爲從ASP.NET網站加載兩個不同的網頁。這些頁面也有持續的AJAX請求。什麼混淆或導致我的Http Web請求標頭有時包含「代理連接」而不是「連接」?

問題:有時候有些請求 - 通過瀏覽器頁面中的XMLHttp Web引用&都會卡住。我使用fiddler進行了檢查,發現這些請求獲得http狀態502響應,並且實際上在TCP IP連接時失敗。我發現的問題的模式/原因是,來自應用程序的所有http web請求通常都包含「Connection」標頭,但一些隨機請求中包含「Proxy-Connection」標頭。並且可以肯定的是,502錯誤總是會引起這些請求,並且只有這些請求帶有「代理連接」頭。

如果這是問題的原因,我想知道是什麼導致一些請求發送「Proxy-Connection」頭而不是正常的「Connection」頭?

UPDATE:由於我不斷地使用fiddler測試和監視這個 - 我現在有了一個新的發現。當應用程序正在運行並且提琴手正在捕獲日誌時 - 我在請求標題中隨機搜索日誌中的「代理服務器」,有時它會顯示「1個會話包含'代理服務器'」,但是當我再次研究它時,它會顯示「包含0個會話」代理'」。我甚至在它說「1會話包含'代理'」時甚至快速地保存了選定的日誌,但是當我稍後檢查保存的日誌時,它不包含請求頭部中的'代理'並且狀態也是200(不是502)。現在,當我玩弄捕捉實時日誌的提琴手時,我發現幾乎所有(或大部分)請求實際上都是從「Proxy-Connection」頭開始的,並在請求完成時更改爲「Connection」。那麼這是否會導致沒有完成的請求保留「Proxy-Connection」頭?

任何線索?我很困惑,並試圖弄清楚 - 無論代理連接頭是否導致502錯誤?或502錯誤導致代理連接頭?

+0

看起來有一些HTTM協議的實現出現錯誤,請參閱這裏的服務器列表http://www.http-stats.com/header/Proxy-Connection – sll

回答

1

您和Web服務器之間必須有一些代理。如果您查看http://www.checkupdown.com/status/E502.html,通常會出現HTTP 502錯誤,因爲代理或網關無法連接到目標服務器。通常這是由於連接問題或加載問題(如果您通過自己的路由器運行,那麼它可能是連接性的,如果您通過ISP的透明代理運行,那麼它可能是)。

停止錯誤的方法不多,您必須編寫代碼來捕獲此錯誤並重試。

因此,要回答你的問題:

是否代理連接頭導致502錯誤?或502錯誤導致代理連接頭?

代理連接標頭是一些代理或網關有錯誤連接到Web服務的跡象。它本身不是502錯誤的原因,502錯誤不是Proxy-Connection頭的原因。