odata - 如何解决 WCF 数据服务中的默认消息大小限制

标签 odata wcf-data-services

我的 WCF 数据服务遇到了问题。其中一个表包含太多要返回的数据(大约 80 个字段),因此只有一条记录会超过大小限制(估计超过 60k,我无法准确判断,因为无法看到消息消息输出中断)。

到目前为止,我发现它可以通过两种方式解决。

  • 提高邮件大小限制。
  • 将数据传输格式更改为 Json。

  • 对于这两种解决方案,都有一些问题需要克服。
  • 网上有很多文章解释了如何配置 WCF 服务以更改缓冲区大小或读取器配额。但是我不知道WCF数据服务是如何工作的,因为官方文档没有展示如何以声明方式配置WCF数据服务。 WCF 数据服务是否支持相同的配置隐喻?以及如何实现它?
  • WCF 数据服务客户端库似乎不支持开箱即用的 json 格式。我必须自己实现相同的功能。我的问题是 C# 中是否存在任何 odata json 解析器?
  • 最佳答案

    对于问题 #1,查看主题 Streaming Provider (WCF Data Services) ,其中包括此 WCF 配置,以使用 WCF 数据服务启用进出 OData 服务的大消息:

     <system.serviceModel>
     <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
     <services>
         <!-- The name of the service -->
         <service name="PhotoService.PhotoData">
             <!--you can leave the address blank or specify your end point URI-->
             <endpoint binding="webHttpBinding" 
               bindingConfiguration="higherMessageSize" 
               contract="System.Data.Services.IRequestHandler"></endpoint>
         </service>
     </services>
     <bindings>
         <webHttpBinding>
             <!-- configure the maxReceivedMessageSize value to suit the max size of 
                      the request (in bytes) you want the service to receive-->
             <binding name="higherMessageSize" transferMode="Streamed"  
              maxReceivedMessageSize="2147483647"/>
         </webHttpBinding>
     </bindings>
    

    对于问题#2,WCF 数据服务客户端不支持 JSON,只支持 Atom XML。你试过帖子Using System.Json for non-Silverlight projects?这似乎有一些关于从客户端数据服务解析 JSON 的其他替代方案的有用信息。

    关于odata - 如何解决 WCF 数据服务中的默认消息大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5918749/

    相关文章:

    odata - 在 Microsoft Dynamics CRM (OData) 的单个请求中创建多个实体

    c# - ODataProperties (System.Web.OData.Extensions - OData v4) 缺少 '' 模型属性

    windows-phone-7 - 等效于 WP7 组合框

    .net - 何时使用 WCF 数据服务,何时不使用?

    java - 使用 Olingo/ODATA 4 编写 ExpressionVisitor 的集成测试

    c# - "' HttpRequestMessageProperties ' does not contain a definition for ' PathHandler '"尽管使用 System.Web.Odata.Extensions

    linq-to-sql - 使用带有解密层的 LINQ-to-SQL 的 oData/ADO.NET 数据服务

    asp.net-mvc-4 - 在 OData 结果中包括链接记录的计数

    asp.net-mvc - 模拟 DataServiceQuery<TElement>

    wcf - 我应该何时选择使用 WCF 与 WCF 数据服务