我已经创建了一个接收大文件的服务。之后我在我当地的IIS7上发布了它。之后我创建了带有服务引用的测试客户端。当我尝试将大文件发送到服务器时,我得到了:错误请求(400)。
该例外的服务跟踪: 已超出传入邮件的最大邮件大小限额(65536)。要增加配额,请在相应的绑定元素上使用MaxReceivedMessageSize属性。
服务器配置:
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime maxRequestLength="2097151" useFullyQualifiedRedirectUrl="true" executionTimeout="14400"/>
<customErrors mode="Off" /></system.web>
结合
<wsHttpBinding>
<binding name="wsBufferedHttpsBinding" messageEncoding="Mtom"
maxReceivedMessageSize="11534336" maxBufferPoolSize="524288"
sendTimeout="00:05:00" receiveTimeout="00:05:00" openTimeout="00:05:00" closeTimeout="00:05:00" >
<readerQuotas maxDepth="64" maxStringContentLength="11534336" maxArrayLength="11534336"
maxBytesPerRead="11534336" maxNameTableCharCount="16384" />
</binding>
</wsHttpBinding>
服务
<service name="MyService">
<endpoint address=""
binding="wsHttpBinding"
bindingName="wsBufferedHttpsBinding"
contract="IServiceContract">
</endpoint>
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
<endpoint address="soap12IssuedToken" binding="customBinding"
bindingConfiguration="soap12IssuedToken" name="soap12IssuedToken"
bindingNamespace="http://url"
contract="IServiceContract" />
</service>
这项服务究竟出了什么问题?我在任何地方都设置了这个消息大小。
答案 0 :(得分:2)
看起来主要问题是您的端点没有引用绑定配置。因此,您使用的是默认值65536。
还有一些其他事项需要检查:
答案 1 :(得分:0)
答案很简单:
<endpoint address=""
binding="wsHttpBinding"
bindingName="wsBufferedHttpsBinding"
contract="IServiceContract">
我没有看到 bindingName 而不是 bindingConfiguration
答案 2 :(得分:0)
我后来也遇到了这个问题,但后来我通过添加来解决了这个问题 服务的行为中的 dataContractSerializer maxItemsInObjectGraph =“2147483646”