WCF随机返回无效的JSON



我正在Windows Server 2008 R2上运行ASP.NET应用程序。我已经安装了.NET框架4.5。从.NET框架v2.0迁移到v4.0后,我开始体验WCF的随机行为。

我的Web服务返回JSON。重新启动IIS后,该服务将返回约3至5次的完美有效的JSON。之后,JSON变得无效。我已经通过提琴手检查了跨线的内容,以及我自己在客户端应用程序(称为服务的Adobe Air应用程序)和服务器本身上的日志。

提琴手表明,原始响应实际上包含无效的JSON。看来,JSON的一个随机点似乎是JSON再次被写出!

请参阅此串联示例:

{"responseCode":0,"actionCode":"OK","cdn{"responseCode":0, "actionCode".....

请注意,"响应"如何(仅在JSON响应的开头出现)突然突然出现在JSON中。"cdn{"responseCode":0当然是无效的JSON。

我尝试了许多补丁。我尝试过从不同框架和不同组合中运行 ServiceModelReg.exe aspnet_regiis.exe 。相同的行为。如果我将v2.0下的代码还原为以前的代码,然后将应用程序池切换回V2.0,则一切正常。

我认为这是WCF深处的错误。有任何想法吗?

我目前唯一的追索权是撕开WCF并切换到ServiceStack之类的东西,如有必要,我可以在所有代码中进行调试。

有完全相同的问题。我通过从我的web.config中删除这两个条目来解决此问题:

<system.serviceModel>
    <diagnostics>
        <messageLogging logEntireMessage="true" logMessagesAtTransportLevel="true" maxSizeOfMessageToLog="-1" maxMessagesToLog="-1" />
    </diagnostics>
</system.serviceModel>

<system.diagnostics>
    <sources>
        <source name="System.ServiceModel.MessageLogging">
            <listeners>
                <add name="messages" type="MyCustomListener" />
            </listeners>
        </source>
    </sources>
</system.diagnostics>

您是否将InstanceContextMode设置为单个/Cermession?

参考此...混合两个响应

最新更新