pja*_*cko 6 wcf iis-7 nettcpbinding
我有一个应用程序,它使用带有netTcpBinding的WCF上传大文件.对于特定文件,我收到错误消息:
已超出传入邮件的最大邮件大小限额(65536).要增加配额,请在相应的绑定元素上使用MaxReceivedMessageSize属性.
这是我对客户端web.config文件的绑定(客户端是一个ASP.NET网站):
<binding name="DataImportEndpoint" closeTimeout="00:20:00" openTimeout="00:01:00"
receiveTimeout="00:20:00" sendTimeout="00:20:00" transferMode="Buffered"
hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288"
maxBufferSize="5242880" maxReceivedMessageSize="5242880">
<readerQuotas maxDepth="32" maxStringContentLength="524288" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
</security>
</binding>
Run Code Online (Sandbox Code Playgroud)
我意识到我还需要更改服务配置的maxReceivedMessageSize属性.所以我添加了这个绑定:
<bindings>
<netTcpBinding>
<binding name="NetTcpLarge"
maxReceivedMessageSize="5242880" maxBufferSize="5242880">
<readerQuotas maxStringContentLength="524288"/>
</binding>
</netTcpBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)
并修改了我的端点:
<endpoint address="DataImportService" binding="netTcpBinding"
name="DataImportEndpoint" bindingConfiguration="NetTcpLarge"
contract="IDataImportService" />
Run Code Online (Sandbox Code Playgroud)
这解决了我在Visual Studio中运行自托管时的问题.但是在IIS 7上运行的实例上,我仍然遇到超出65536的错误.我错过了什么吗?我甚至将它添加到IIS 7实例中的服务配置中,但无济于事:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="5242880" />
</requestFiltering>
</security>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
如果异常与IIS仍然相同,则与此无关<requestLimits>,异常明确表示maxReceivedMessageSize已超出.我将以详细级别捕获WCF跟踪,并检查端点上应用的绑定配置.
我建议你重新检查客户端和服务配置,如果仍然没有线索,请在详细级别捕获服务和客户端的跟踪.
| 归档时间: |
|
| 查看次数: |
20410 次 |
| 最近记录: |