2014-05-16 121 views
0

我有一个REST服务调用WCF服务。 WCf服务中的方法按预期返回数据。这是C#对象的Json格式。底层连接已关闭 - webAPI,WCF

[ 
      { 
       "$id": "1", 
       "children": [], 
       "id": 1, 
       "name": "1", 
       "owner": { 
        "userId": 1, 
        "username": "testuser", 
        "firstName": null, 
        "lastName": null 
       }, 
       "parent": null, 
       "permissions": [], 
       "type": 0 
      } 
     ] 

时,有一个复杂的对象的WCF服务抛出一个错误“基础连接已关闭:连接被意外关闭”

[ 
    { 
     "$id": "1", 
     "Children": [ 
      { 
       "$id": "2", 
       "Children": [], 
       "Id": 603268262, 
       "Name": "testfolder", 
       "Owner": { 
        "UserId": 555, 
        "Username": "testuser", 
        "FirstName": null, 
        "LastName": null 
       }, 
       "Parent": { 
        "$ref": "1" 
       }, 
       "Permissions": null, 
       "Type": 0 
      } 
     ], 
     "Id": 1, 
     "Name": "555", 
     "Owner": { 
      "UserId": 555, 
      "Username": "testuser", 
      "FirstName": null, 
      "LastName": null 
     }, 
     "Parent": null, 
     "Permissions": null, 
     "Type": 0 
    } 
] 

我已经试过最答案这个SO题。为什么只有在返回复杂对象时才会出现错误?

回答

0

找到了答案,只是发表了问题之后。我注意到有一个对象持有对Json中对象的引用

"Parent": { 
        "$ref": "1" 
       } 

这是阻止对象序列化。我做了一个深层复制,并修复了问题

相关问题