2012-05-22 76 views
0

WCF錯誤與列表工作時:WCF錯誤,而與表工作,錯誤碼:10054

「無法從傳輸連接讀取數據:現有 連接被強行關閉遠程主機」 而試圖從WCF服務中返回一個List。

請注意; 1.我的業務對象行設置爲KnownTypeAttribute像[ServiceKnownType(typeof(ProjectName.Bo.Bank))]

  1. 我可以從WCF服務返回的對象銀行

  2. 我內心異常錯誤層次是像 例外:基礎連接已經關閉:一個接收時發生意外錯誤。

的InnerException:無法讀取從傳輸連接數據:一個現有的連接被強行關閉遠程主機

的InnerException:一個現有的連接被強行關閉遠程主機

  1. 我嘗試使用[ServiceKnownType(typeof(System.Collections.IList))]

總之我得到錯誤,而WCF客戶端嘗試收到return List<Bank>請任何機構有一些建議?

+3

我認爲你需要從[Tracing]開始(http://msdn.microsoft.com/en-us/library/ms733025.aspx) – V4Vendetta

+0

嘗試返回一個數組。 – ColWhi

+0

如果您的銀行類是實體框架對象,請嘗試創建銀行的簡單POCO填充它並返回POCO對象。還要確保列表不是很大,如果它非常大,則增加客戶端和服務器端的readerQuotas設置以進行綁定。 – Rajesh

回答

0

不能確定它,但不應該在返回泛型類時使用泛型接口? IList<T>而不是IList ..

0

解決了!這是一個ServiceKnownType問題。在已知的類型加載器中,我們必須添加運行時類型,

Type aaa = Type.GetType("System.Collections.Generic.List`1[[ProjectName.BusinessObjects.Bank, ProjectName.BusinessObjects, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null]]"); 

knownTypes.Add(aaa);

任何有同樣問題的人都可以試試這個。它在我的環境中工作!