WCF随机返回无效的JSON

Kev*_*ald 6 .net iis wcf json aspnet-regiis.exe

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

我的Web服务返回JSON.重新启动IIS后,该服务将返回完全有效的JSON约3至5次.之后,JSON变为无效.我已经通过Fiddler和我自己的客户端应用程序(一个调用该服务的Adobe AIR应用程序)和服务器本身检查了传输内容.

Fiddler表明原始响应确实包含无效的JSON.似乎JSON中的一些随机点响应JSON开始再次被写出来!,覆盖应该存在的内容并在此过程中产生损坏的JSON.

看到这个连接的例子:

{"responseCode":0,"actionCode":"OK","cdn{"responseCode":0, "actionCode".....
Run Code Online (Sandbox Code Playgroud)

请注意"responseCode"(应该只出现在JSON响应的开头)会突然再次出现在JSON中."cdn{"responseCode":0当然是无效的JSON.

我尝试了很多补丁.我试着运行ServiceModelReg.exeaspnet_regiis.exe从在不同的框架和不同的组合.相同的行为.如果我恢复到v2.0下的先前代码并将App Pool切换回v2.0,那么一切正常.

我相信这是WCF深处的一个错误.有任何想法吗?

我现在唯一的办法就是撕掉WCF并切换到类似ServiceStack的东西,我可以在必要时调试所有代码.

Mar*_*ark 1

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

<system.serviceModel>
    <diagnostics>
        <messageLogging logEntireMessage="true" logMessagesAtTransportLevel="true" maxSizeOfMessageToLog="-1" maxMessagesToLog="-1" />
    </diagnostics>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

<system.diagnostics>
    <sources>
        <source name="System.ServiceModel.MessageLogging">
            <listeners>
                <add name="messages" type="MyCustomListener" />
            </listeners>
        </source>
    </sources>
</system.diagnostics>
Run Code Online (Sandbox Code Playgroud)