这令人沮丧......我对Web服务不熟悉,我真的不明白为什么我无法弄清楚如何使用Microsoft WSE 3.0在我的Web服务上启用SOAP的MTOM编码。我已将以下内容添加到我的Web服务中:
服务器上我的库中的Web.config和app.config:
<configuration>
<configSections>
<section name="microsoft.web.services3" type="Microsoft.Web.Services3.Configuration.WebServicesConfiguration, Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</configSections>
<system.web>
<httpRuntime maxRequestLength="134217728" executionTimeout="300"/>
<webServices>
<soapExtensionImporterTypes>
<add type="Microsoft.Web.Services3.Description.WseExtensionImporter, Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</soapExtensionImporterTypes>
<soapServerProtocolFactory type="Microsoft.Web.Services3.WseProtocolFactory, Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</webServices>
<compilation>
<assemblies>
<add assembly="Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
</system.web>
<microsoft.web.services3>
<messaging>
<mtom serverMode="always" />
<maxMessageLength value="134217728" />
</messaging>
</microsoft.web.services3>
</configuration>
在客户端,我将相同内容添加到app.config中,添加了clientMode =“On”。
当我尝试上传40MB文件时,我收到了流行错误“超出最大请求长度。”
任何解释?我是否必须告诉传输使用该配置?我怎么做?谢谢!
答案 0 :(得分:2)
您可能正在遇到Web服务器的maxAllowedContentLength。如果您运行的是IIS7,请尝试将此代码块添加到web.config中。 IIS7在http运行时获取请求之前过滤请求。
http://msdn.microsoft.com/en-us/library/ie/ms689462(v=vs.90).aspx
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="134217728" />
</requestFiltering>
</security>
</system.webServer>