如何使用EF 6设置WCF数据服务(odata)的配置文件

如何使用EF 6设置WCF数据服务(odata)的配置文件,wcf,odata,wcf-data-services,Wcf,Odata,Wcf Data Services,我有一个数据服务已启动并正在运行,但出现以下错误: 远程服务器返回错误:(413)请求实体太大 我尝试了很多方法来解决这个问题,但都没有成功。 我已将网站上的uploadReadAheadSize和IIS中的数据服务设置为最大设置。 我还尝试了许多不同的配置文件设置 以下是客户端的当前app.config: <system.serviceModel> <bindings> <basicHttpBinding> <binding name=

我有一个数据服务已启动并正在运行,但出现以下错误:

远程服务器返回错误:(413)请求实体太大

我尝试了很多方法来解决这个问题,但都没有成功。 我已将网站上的uploadReadAheadSize和IIS中的数据服务设置为最大设置。 我还尝试了许多不同的配置文件设置

以下是客户端的当前app.config:

  <system.serviceModel>
<bindings>
  <basicHttpBinding>
    <binding name="BasicHttpBinding_ILogging" />
    <binding name="WCFHttpBinding"
             maxReceivedMessageSize="2147483647"
             maxBufferSize="2147483647"
             maxBufferPoolSize="2147483647">
      <readerQuotas maxArrayLength="2147483647"
                    maxDepth="2147483647"
                    maxBytesPerRead="2147483647"
                    maxNameTableCharCount="2147483647"
                    maxStringContentLength="2147483647"/>
    </binding>
  </basicHttpBinding>
  <webHttpBinding>
    <binding name="WCFWebBinding" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
    </binding>
  </webHttpBinding>
</bindings>
<client>
  <endpoint address="http://localhost/PSIDataService/PSIWcfDataService.svc"
            binding="webHttpBinding" bindingConfiguration="WCFWebBinding"
            name="WCFWebBinding" contract="*"/>
</client>

我尝试了两种绑定,WCFWebBinding和WCFHttpBinding

这是web服务web.config

  <system.serviceModel>
<behaviors>
  <serviceBehaviors>
    <behavior name="">
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<bindings>
  <basicHttpBinding>
    <binding name="WCFHttpBinding" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text">
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
    </binding>
  </basicHttpBinding>
  <webHttpBinding>
    <binding name="WCFWebBinding" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
    </binding>
  </webHttpBinding>
</bindings>
<client>
  <endpoint address="http://localhost/PSIDataService/PSIWcfDataService.svc"
      binding="basicHttpBinding"
      bindingConfiguration="WCFHttpBinding"
      name="WCFHttpBinding"
      contract="*"/>

</client>


我再次尝试了这两种绑定。我不知道还能做什么。任何帮助都会很好。

我找到了解决这个问题的方法。web.config必须添加一个服务来命名该服务,并将契约设置为“System.Data.Services.IRequestHandler”


我的系统抱怨服务名称和合同(属性为无效警告)。我的服务的名称空间是PSIDataService,类名是PSIWcfDataService,所以我忽略了投诉。合同名称具有相同的警告。我知道接口存在,所以我也忽略了那个警告

还需要webHttpBinding

  <bindings>
  <basicHttpBinding>
    <binding name="BasicHttpBinding_ILogging" />
  </basicHttpBinding>
  <webHttpBinding>
    <binding name="msgSize" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"/>
  </webHttpBinding>
</bindings>


我从Malvin Ly()那里得到了这个修复的想法,所以谢谢Malvin!我不喜欢这些警告,但这解决了我的问题。

谢谢!我昨天一整天都在搞这个。这解决了我的问题。
  <bindings>
  <basicHttpBinding>
    <binding name="BasicHttpBinding_ILogging" />
  </basicHttpBinding>
  <webHttpBinding>
    <binding name="msgSize" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"/>
  </webHttpBinding>
</bindings>