我現在有一個事件處理器類,它有一個字典來存儲所有的訂閱。實際上它是一本字典詞典。此進程類正在與第三方遠程服務器進行通信,以提出對目標數據的請求。我在問這個問題,因爲現在我們遇到了偶爾訂閱丟失的問題。由於某種原因,很難驗證這種丟失是否發生在與遠程服務器的連接中,我現在必須首先檢查我的事件處理器類是否有任何問題。而且我的第一個嫌疑人是因爲這個Dictionary對象溢出而導致訂閱信息丟失。有人有什麼主意嗎?謝謝!.NET Dictionary對象可能溢出嗎?
UPDATE
也許我應該告訴多一點有關場景,因爲代碼是不是真的很容易顯現。我們曾經使用我們的傳統軟件(我們稱之爲A),使用B供應商提供的API與遠程數據服務(稱爲B)進行通信。但是,由於我們將A更改爲64位SW,但爲B提供的庫仍爲32位,因此我們的新64位A不能再使用此庫。所以我正在設計一個名爲C的32位SW,使用該庫連接到B,同時使用WCF保持與64位A的通信。由於C主要是pub/sub結構,正如我之前提到的,我正在使用Dictionary Dictionary來維護C中的請求和訂閱。而我們的問題就出現了:我們遇到了一些訂閱丟失(長時間沒有發佈,但在重新初始化訂閱後,我們可以在A處獲得這些出版物)。我們很難檢查B的反饋以查看是否存在任何錯誤配置。而我的WCF服務日誌也沒有顯示任何錯誤。我不得不懷疑這個問題只發生在C上。我意識到多線程問題,所以我鎖定了Dictionary的每一個操作。但我無法想象可能會出現什麼問題。順便說一句,它不像C,內存用完了,C崩潰了。
你在服務器上發生溢出錯誤嗎?你爲什麼會認爲這是第一個罪魁禍首?這似乎不像一個似乎合理的探索 – 2012-07-06 19:04:21
@RyanBennett請參閱我的更新。謝謝! – tete 2012-07-07 21:48:40