簡體   English   中英

客戶端具有多個IP地址時WCF服務問題

[英]WCF service issue when client has multilple IP addresses

我需要一些幫助來解決與IIS托管的WCF服務進行桌面客戶端通信時遇到的問題。

我想在測試用例中做的是:

  1. 服務器托管WSDualHttpBinding服務
  2. 客戶端通過提供其包含客戶端IP地址的回調uri來建立對此的連接(調用Register方法)。
  3. 建立連接后,客戶端應用程序將啟動網頁。 用戶在文本框中鍵入一些文本,然后單擊“發送”。 該網頁將文本發送到所有注冊的桌面客戶端。

問題:

在步驟2中,PC可能具有多個IP地址(以太網適配器,回送適配器等)。 如果在注冊呼叫期間,無法通過服務器從回調URL發送該列表中的IP(例如,回送適配器IP),則會拋出超時異常。 經過幾次這樣的嘗試后,服務器不再接受來自客戶端的呼叫(無論是有效IP還是其他)。 有時會引發“服務器太忙”異常。

(由於DNS / WINS配置問題導致服務器無法將計算機名稱解析為正確的IP地址,因此我無法在回調uri中使用計算機的標准名稱)。

繁殖方法:
一種。 在IIS上發布服務器。 從具有多個IP地址的另一台計算機上,執行客戶端。 客戶端拋出超時異常,並在3次嘗試b之后程序退出。 App.Config中的參數允許輸入正確的IP地址(要使用的IP)。 現在,如果啟動該程序,一切正常。
C。 如果我刪除了上面指定的該IP地址,以便使用了錯誤的IP,則會再次發生步驟a。 在此模式下,運行程序2-3次。
d。 按照步驟b進行更改,然后運行程序。 有時我會收到超時異常。 其他時間,該網站出現。 但是,輸入和發送文本時,它不會到達客戶端。 (即使Web服務未收到任何呼叫,注冊方法仍然有效。由於Web服務上沒有注冊的客戶端,因此發送功能失敗。

我不確定為什么會發生這種情況以及如何解決。 這是我的Visual Studio解決方案-http://bit.ly/atKfOS

高度贊賞任何投入,評論。 環境:服務器-Windows XP(IIS 5),Windows Server 2008 SP2 x64(IIS 7),客戶端:Windows XP

謝謝GC

好吧,我想主要的問題是:當服務器嘗試回呼客戶端並失敗時,兩者之間的通道將“出現故障”,並且變得無用。

發生此類事件后,您必須處置客戶端代理,然后重新創建它-或在服務器上優雅地處理超時異常(將其捕獲,將其轉換為SOAP錯誤,將其記錄-不管如何-只是不要讓未經過濾的.NET TimeoutException傳遞回客戶端,這將導致通道故障。

當發生此類TimeoutException時,您在服務器端做什么? 您確定不一直在通道中冒泡該異常嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM