2011-02-08 88 views
2

從我的WinForms應用程序中,我必須調用Web服務,並使用Web引用。到目前爲止沒有問題,但現在我有一個使用位於負載平衡器後面的代理背後的軟件的客戶端。如何關閉Web服務調用的持久連接

Webservice調用正常,但兩分鐘後失敗。我們可以通過反覆調用一個間隔少於兩分鐘的web服務來解決這個問題。

我發現負載平衡器會在兩分鐘內不使用tcp會話時斷開連接,顯然這是我們的情況,軟件無法恢復。

如何告訴gerenated web引用爲每個Web服務調用使用新的tcp連接?

+0

你處置代理的通話對象之間嗎? – e36M3 2011-02-08 13:28:48

回答

1

如果重寫代理的GetWebRequest方法,那麼你可以設置KeepAlive屬性:

public override WebRequest GetWebRequest(Uri uri) 
{ 
    HttpWebRequest request = (HttpWebRequest) base.GetWebRequest(uri); 
    request.KeepAlive = false; 
    return request; 
} 
+0

我可以關閉webrequest上的KeepAlive,但我不斷看到代理連接:Keep-Alive在標題中。 – 2011-02-08 14:16:24