【问题标题】:WCF not returning JSON data or error with large amount of dataWCF 不返回 JSON 数据或大量数据出错
【发布时间】:2012-05-17 21:52:59
【问题描述】:

我有一个 WCF Web 服务,它将数据构建到类中,然后由 WCF 自动序列化为 JSON([WebGet(ResponseFormat = WebMessageFormat.Json,...)] 并返回到客户端。在我有大量数据之前一切正常。我有Web 配置设置最大值为 2147438647。奇怪的是,在 WCF 服务传回之前,这些类已填充并且不为空。但是,客户端永远不会收到数据,也不会收到错误消息,并且 IIS/WCF 不会抛出任何类型例外。就好像数据凭空消失一样。

【问题讨论】:

    标签: json wcf


    【解决方案1】:

    “客户端从不接收数据”是什么意思?连接掉线了?它收到一个0字节的响应?

    WCF 中有许多配额,但它们主要用于传入数据。有一个用于传出数据,您可能会点击它,它是maxItemsInObjectGraph,可以为大型对象图触发。您应该在服务器中启用跟踪,并且跟踪应该有一个异常事件,可以阐明问题所在。

    【讨论】:

    • Fiddler 返回 504 并显示 [Fiddler] ReadResponse() failed: 服务器没有为此请求返回响应
    • 我还测试了使用 Web 服务的实时应用程序以及 FireFox 中的 REST 客户端来执行对 WCF Web 服务的调用。调用命中服务器(在调试模式下运行并逐步通过代码),并且按预期生成的所有内容以及包含数据的类(在调试模式下检查属性)返回到 WCF 调用。 REST 客户端永远不会从 WCF 服务接收返回的 JSON 序列化数据,也不会从服务器接收响应状态或标头。请求发出,服务器生成数据,序列化似乎没有发生,也没有发回任何响应。
    • 我现在也将配置中的所有内容设置为最大值 2147438647。
    • 尝试在服务器上启用跟踪 - msdn.microsoft.com/en-us/library/ms733025.aspx。跟踪应该有这个问题的条目。
    • 我在 web.config 中添加了以下内容,当进程失败时没有创建日志文件。我在设置中错过了什么吗?
    【解决方案2】:

    检查你的 web.config..确保你有这个

    <system.webServer>
        <security>
          <requestFiltering>
            <requestLimits maxAllowedContentLength="4294967295"/> 
          </requestFiltering>
        </security>
      </system.webServer>
    

    maxAllowedContentLength 限制/设置上传大小..

    【讨论】:

      猜你喜欢
      • 2017-03-30
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      • 2017-09-01
      • 1970-01-01
      相关资源
      最近更新 更多