我发现了这个问题:Complex data types in WCF?有一个非常类似的问题,除了它是基于enumvalue问题。我的问题有点复杂。我有一个服务,方法功能完全正常,除了一个。失败的一个方法(operationcontract)调用是返回复杂对象的方法。该对象具有[Include]和[Association]字段的属性,这些字段又有自己的[Include]和[Association]字段(这些字段实际上是递归的,指向彼此,构建一个可能无限的列表。
最大的问题是在我的开发环境Win 7 x64,vs2010,iis中,它按预期运行,但在我的生产环境Server 2008 R2中,它断开,给我“收到HTTP响应时发生错误“错误。
我已在消息日志中检查了服务跟踪查看器,但所有显而易见的是,根本没有针对该特定请求发送响应。所有其他请求都获得“ServiceLevelSendReply”记录,而这种特殊方法不会。
任何想法?
答案 0 :(得分:1)
由于您有可能以循环方式引用其他对象的对象,因此您基本上尝试发送对象图而不是对象树。 WCF仅添加了对在.NET 3.5 SP1中发送对象图的支持,因此如果您的服务器具有不带SP1或更低版本的.NET 3.5,则在尝试发送对象图时它将失败。
要确切了解您的服务没有响应的原因,您可能需要enable WCF tracing,它会生成一份非常详细的服务内容记录。