通过WCF回调发送业务对象时发生超时
我有一个WCF服务实现了回调合同,我试图通过发送业务对象。 我有使用DataContract()和DataMember()属性修饰的业务对象,它包含以下数量的属性:
- 整理:3
- 字符串:4
- XElement:1
- 其他对象:5(也用DataContract()和DataMember()修饰
每当我尝试通过回调发送此对象时,服务就会超时。 我已经尝试创建具有较少属性的其他对象以通过回调发送,并且如果只有一个属性可以让它通过,但如果我有任何多个属性,则服务超时。
我的配置有问题吗? 我已经尝试了默认的wsDualHttpBinding,以及一个customBinding(如下所示),我尝试了各种不同的设置,包括maxBufferSize,maxBufferPoolSize和maxReceivedMessageSize。 我不想增加超时,因为我希望这个对象能够很快地到达我的客户端。 请有人帮助我…如果我留下了任何头发,我会把它拉出来!!!!!
我已经配置了我的服务:
服务器配置:
客户端配置:
将以下内容添加到web.config:
然后调用您的Web服务方法。 这将在您的网站的根目录中生成WcfDetailTrace.svclog 。 使用SvcTraceViewer.exe打开此文件。 这应该可以为您提供有关正在发生的事情的大量信息。
其他物体有多大? 例如, XElement
的子树有多大? 对象的图形最终会变得非常大,特别是如果它调用其他对象。
一个简单的调查方法可能是删除[DataMember]
属性,除了其中一个字符串,并一次重新引入它们直到它中断。
我想看看http://smehrozalam.wordpress.com/2009/01/29/retrieving-huge-amount-of-data-from-wcf-service-in-silverlight-application/ 。