2008-12-19 48 views
0

在使用.NET Remoting(.NET 2.0)進行通信的客戶端 - 服務器系統開發期間,如果我的遠程處理對象返回自定義數據集,則發現非常奇怪的行爲。由於某些原因,如果我使用的是帶有二進制格式(最快選項!)的TCP通道,則客戶端上的數據集實例需要0.5到4秒的時間來處理空的數據集實例。這種行爲表現在以下幾個方面:在乾淨啓動之後,客戶端可能只會對服務器進行如此多的調用,以在幾十毫秒內獲得自定義數據集;一旦休息4-5分鐘(在這段時間內沒有對遠端的呼叫),每次隨後對遠端返回自定義數據集的呼叫需要0.5到4秒。如果遠程調用返回除自定義數據集之外的其他任何內容,則所有內容都會以幾十毫秒的時間再次執行如果我使用二進制格式將我的遠程配置更改爲HTTP通道,則一切都完美無瑕。我使用此配置作爲解決方法,但這不是解決方案,而是解決方法。返回自定義數據集時,.NET Remoting性能下降

自定義數據集是通過創建新的XSD數據集並從服務器資源管理器(SQL Server)中拖出表格,然後從數據集中刪除表格適配器部分來完成的。

我創建了一個裸露測試項目(download),展示了我正在談論的行爲。我將ReadMe文件包含在如何重現問題的步驟中。

謝謝!

PS。 This was an original question,但現在我將其縮小到自定義數據集,這顯然是一個罪魁禍首,所以請不要將其標記爲重複。

回答

0

我在研究過程中遇到了關於序列化格式的文章。這就是爲什麼我將這種情況作爲測試項目中的一個單獨選項。手動調整BinaryFormat將處理時間從0.5秒增加到4秒。

1

您可以嘗試從article的一些步驟,我已經使用過其中的一些步驟,並且它有了很大的改進。