我已经研究这个问题几天了,大多数解决方案都提到在 app.config 文件和 web.config 文件中更改 MaxReceivedMessageSize 绑定设置。但是,我的解决方案没有 app.config 文件,所以我不太确定我在这里做错了什么。
我的 Web 客户端是从 IIS 7 部署的。我正在尝试将带有 xml 数据的 javascript 表单作为字符串异步提交到我的 WCF Web 服务,然后从那里触发客户端上的文件下载。这适用于较小的文件,但在较大的文件上失败,因为绑定似乎正在下降到默认值。
在我的 svclog 中使用 WCF 跟踪器时,我看到“已超出传入消息的最大消息大小配额 (65536)。要增加配额,请在适当的绑定元素上使用 MaxReceivedMessageSize 属性。” 来自我的服务。
这是我的 web.config,我知道它没有应用于我的请求。因此,我的请求甚至从未离开我的 javascript 客户端。
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="customBindingNameForLargeMessages"
maxReceivedMessageSize="2147483647" transferMode="Streamed">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
</binding>
</webHttpBinding>
</bindings>
<client>
<endpoint address="http//localhost:32478/Services/MobileConsoleDownloadService.svc"
binding="webHttpBinding" bindingConfiguration="customBindingNameForLargeMessages"
contract="Foo.Bar.MobileConsole.Services.IMobileConsoleDownloadService"
name="" />
</client>
<services>
<service name="Foo.Bar.MobileConsole.Services.MobileConsoleDownloadService">
<endpoint address="http:localhost:32478/Services/MobileConsoleDownloadService.svc"
binding="webHttpBinding" bindingConfiguration="customBindingNameForLargeMessages"
name="" contract="Foo.Bar.MobileConsole.Services.IMobileConsoleDownloadService" />
</service>
</services>
</system.serviceModel>