我在Windows Server 2008 R2上運行ASP.Net應用程序。我已經安裝了.NET Framework 4.5。從.NET Framework v2.0遷移到v4.0後,我開始體驗WCF的隨機行爲。WCF隨機返回無效的JSON
我的web服務返回JSON。重新啓動IIS後,服務將返回完全有效的JSON大約3到5次。之後,JSON變得無效。我已經檢查了通過Fiddler傳遞的信息以及我自己在客戶端應用程序(調用服務的Adobe AIR應用程序)和服務器本身上的日誌。
Fiddler顯示原始響應確實包含無效的JSON。看起來非常多的是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之前的代碼並將App Pool切換回v2.0,那麼一切正常。
我相信這是WCF深處的一個bug。有任何想法嗎?
我現在唯一的辦法是將WCF轉換並轉換到ServiceStack之類的位置,如果需要的話可以調試到所有代碼。
看起來像是某種緩衝的問題,其中一個緩衝區重發,或在一個緩衝區不發送/接收後清零。 –
我不知道任何現有的問題。但是,瞭解您是否可以發佈一段repro代碼會很有幫助。 – Praburaj
你有沒有試過FailedRequestLogging來查看是否有任何可疑的事情要經過這個過程?您是否嘗試過通過JavaScriptSerializer()運行您的返回對象以查看它是否存在故障?如果需要,可以調試到框架中(請參閱:http://msdn.microsoft.com/zh-cn/library/cc667410.aspx)。 – Pete