我在 Windows Server 2008 R2 上运行 ASP.Net 应用程序。我最多安装了 .NET Framework 4.5。从 .NET Framework v2.0 迁移到 v4.0 后,我开始体验 WCF 的随机行为。
我的网络服务返回 JSON。重新启动 IIS 后,该服务将返回大约 3 到 5 次完全有效的 JSON。之后,JSON 变为无效。我已经检查了通过 Fiddler 传输的内容以及我自己在客户端应用程序(调用服务的 Adobe AIR 应用程序)和服务器本身上的日志。
Fiddler 显示原始响应确实包含无效的 JSON。似乎 JSON 中的某个随机点开始再次写入响应 JSON!,覆盖应该存在的内容并在此过程中产生损坏的 JSON。
请参阅此串联示例:
{"responseCode":0,"actionCode":"OK","cdn{"responseCode":0, "actionCode".....
请注意“responseCode”(它应该只出现在 JSON 响应的开头)如何突然再次出现在 JSON 中。"cdn{"responseCode":0
当然是无效的 JSON。
我尝试了很多补丁。我尝试过在不同的框架和不同的组合下运行ServiceModelReg.exe
和运行。aspnet_regiis.exe
相同的行为。如果我恢复到 v2.0 下的先前代码并将应用程序池切换回 v2.0,那么一切正常。
我相信这是 WCF 中的一个错误。有任何想法吗?
在这一点上,我唯一的办法是去掉 WCF 并切换到 ServiceStack 之类的东西,如果需要,我可以在其中调试所有代码。