底层连接已关闭:连接意外关闭
我有我的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服务
我解决了这个问题。 在类型WCFREsponseGetAllProducts我的响应对象,我有以下属性
[DataMember]
public IQueryable<Product> Products {get;private set;}
的问题是,IQueryable的是不可序列。我已将其更改为Collection,现在可以使用。
WCFResponseGetAllProducts
被返回有多大?之前由于方法返回的数据量而遇到问题。
尝试通过查找属性maxArrayLength
,maxBytesPerRead
,maxDepth
,maxNameTableCharCount
和maxStringContentLength
,提高他们调整web.config
文件为您服务。
你也需要做同样在web.config
文件为您的asp.net应用程序的configuration > system.serviceModel > bindings > wsHttpBinding
部分属性,以及(可能的)maxBufferPoolSize
和maxReceivedMessageSize
值。
道歉的答案稍微模糊,哪些价值,具体来说,你需要改变 - 这里很晚,我可能会有一杯葡萄酒或两杯=) – Rob 2010-11-19 22:44:15