如何增加发送到ADO.Net数据服务数据的大小?(How do I increase the siz

2019-10-28 20:32发布

我有需要一个字节数组数据服务。 然后,我有一个网页,尝试将文件发送到数据服务。 如果该文件是小(说50KB)则一切按预期,但是如果文件较大(任何超过100KB)我上保存更改呼叫数据服务的一个“错误请求”错误消息。

有没有一种方法,使传递到数据业务更大的数据大小?

编辑(更多细节):我已经设置了maxRequestLength更高,尝试了一些的WebHttpBinding增加maxReceivedMessageSize,但这些似乎并没有被帮助。

Answer 1:

其中WCF服务可以处理通过在WCF结合MaxReceivedMessageSize属性控制请求的最大大小。 默认值是65536,超过您获得400响应代码。

在该网站托管服务的web.config文件,在部分添加以下节点。

<system.serviceModel> 
<services> 
  <!-- The name of the service --> 
  <service name="NorthwindService"> 
    <!-- you can leave the address blank or specify your end point URI --> 
    <endpoint address ="YourServiceEndpoint" 
              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 recieve--> 
    <binding name="higherMessageSize" maxReceivedMessageSize ="MaxMessageSize"/> 
  </webHttpBinding> 
</bindings> 
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> 
</system.serviceModel>

如果在IIS上承载的ASP.Net请求大小限制也可能导致大的请求被拒绝,你将需要设置HttpRuntimeSection.MaxRequestLength属性。

<system.web> 
  <httpRuntime MaxRequestLength="ValueInKiloBytes" />
</system.web>

确定是否WCF是不被浮出水面您在HTTP级别的幕后抛出异常。 您可以配置WCF跟踪在服务器端进行登录从WCF层的必要信息。 一旦你已经跟踪设置,您复制失败,检查日志包含这些异常信息的一个或两个。

System.ServiceModel.ProtocolException
"The maximum message size quota for incoming messages (65536) has been exceeded. 
To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element."

System.Web.HttpException
"Maximum request length exceeded."

如果您看到日志包含此消息,那么可以肯定的是,故障是因为邮件的大小,并相应地应用此修复程序。

PD:记住,你的表格必须使用"POST"方法。



Answer 2:

我也试过没有结果编辑web.config文件。 我仍然得到同样的异常。

这对我的作品的溶液编辑machine.config文件,并添加在System.ServiceModel节点以下行。

<standardEndpoints>
        <webHttpEndpoint>
            <standardEndpoint name="" maxReceivedMessageSize="16777216" maxBufferSize="16777216" />
        </webHttpEndpoint>
    </standardEndpoints>

我不知道这是否是正确的解决方案,但它为我工作。



文章来源: How do I increase the size of data sent to ADO.Net Data Services?