0

我发现了这个问题:WCF 中的复杂数据类型?它有一个非常相似的问题,除了它基于枚举值问题。我的问题有点复杂。我有一项服务,其方法功能非常好,除了一个。失败的一个方法(操作合同)调用是针对返回复杂对象的方法。该对象具有 [Include] 和 [Association] 字段的属性,而后者又具有自己的 [Include] 和 [Association] 字段(它们实际上是递归的,相互指向,构建一个潜在的无限列表。

最大的问题是,在我的开发环境 Win 7 x64、vs2010、iis 中,它按预期运行,但在我的生产环境 Server 2008 R2 中,它坏了,给我“接收 HTTP 响应时发生错误”错误。

我已经检查了消息日志上的服务跟踪查看器,但显而易见的是,根本没有针对该特定请求发送响应。所有其他请求都会获得“ServiceLevelSendReply”记录,而此特定方法不会。

有任何想法吗?

4

1 回答 1

1

由于您有对象以可能的循环方式引用其他对象,因此您基本上是在尝试发送对象图而不是对象树。WCF 仅在 .NET 3.5 SP1 中添加了对发送对象图的支持,因此如果您的服务器具有没有 SP1 或更低版本的 .NET 3.5,则在尝试发送对象图时它将失败。

要弄清楚您的服务没有响应的确切原因,您可能需要启用 WCF 跟踪,它会生成关于您的服务内部发生的事情的非常详细的日志。

于 2011-01-18T21:11:57.167 回答