我有一個應用程序使用WCF和netTcpBinding上傳大文件。對於特定文件,我收到錯誤消息:傳入消息的最大消息大小配額已被超出(明顯的修復不起作用)
傳入消息(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>
我意識到我還需要更改服務配置的maxReceivedMessageSize財產。所以我加了這個結合:
<bindings>
<netTcpBinding>
<binding name="NetTcpLarge"
maxReceivedMessageSize="5242880" maxBufferSize="5242880">
<readerQuotas maxStringContentLength="524288"/>
</binding>
</netTcpBinding>
</bindings>
和修改我的終點:
<endpoint address="DataImportService" binding="netTcpBinding"
name="DataImportEndpoint" bindingConfiguration="NetTcpLarge"
contract="IDataImportService" />
這個固定的問題,當我運行的自我在Visual Studio主辦。但是,在IIS 7上運行的實例中,我是仍然獲得與65536已超出相同的錯誤。我在這裏錯過了什麼嗎?我甚至已將此添加在IIS 7例如我的服務配置,但無濟於事:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="5242880" />
</requestFiltering>
</security>
</system.webServer>
確實,綁定配置沒有被應用。 web.config中的服務名稱與.svc文件(其中一個具有完整的名稱空間)中的服務名稱不匹配,因此正在應用默認端點!感謝您的建議 – pjacko 2011-04-18 14:53:57