2010-11-19 172 views
2

我有我的wcf服務,運行良好。 然後從我的asp.net應用程序,我試圖連接到這個服務。一切都OK了,從asp.net請求服務接收到(因爲我可以調試代碼),然後當它返回到客戶端,我有以下錯誤:底層連接已關閉:連接意外關閉

The underlying connection was closed: The connection was closed unexpectedly 

我對WCF服務合同如下:

[OperationContract()] 
WCFResponseGetAllProducts GetAllProducts(WCFRequestGetAllProducts request); 

而WCFResponseGetAllProducts,WCFRequestGetAllProducts類具有[DataContract]屬性。這些類的成員具有[DataMember]屬性。

然而,當我加入另一種方法來我的合同:

[OperationContract()] 
int Test(); 

那麼我就可以從asp.net MVC應用程序沒有問題,執行它。有人可以幫幫我嗎? PS。我在目前的visual studio 2010中默認的web服務器上託管我的wcf服務

回答

0

我解決了這個問題。 在類型WCFREsponseGetAllProducts我的響應對象,我有以下屬性

[DataMember] 
public IQueryable<Product> Products {get;private set;} 

的問題是,IQueryable的是不可序列。我已將其更改爲Collection,現在可以使用。

0

WCFResponseGetAllProducts被返回有多大?之前由於方法返回的數據量而遇到問題。

嘗試通過查找屬性maxArrayLengthmaxBytesPerReadmaxDepthmaxNameTableCharCountmaxStringContentLength,提高他們調整web.config文件爲您服務。

你也需要做同樣在web.config文件爲您的asp.net應用程序的configuration > system.serviceModel > bindings > wsHttpBinding部分屬性,以及(可能的)maxBufferPoolSizemaxReceivedMessageSize值。

+0

道歉的答案稍微模糊,哪些價值,具體來說,你需要改變 - 這裏很晚,我可能會有一杯葡萄酒或兩杯=) – Rob 2010-11-19 22:44:15

3

我看到你已經解決了你的問題,但我仍然可以提供建議,看看如何使用Service Trace Viewer來弄清楚在這些情況下會出現什麼問題。

相關問題