我正在尝试使用带有SSL over HTTPS的WCF服务encriptes接收大型XML消息。我的应用程序是基于.NET Framework 4.5构建的,并部署在IIS 8.5服务器上。
使用以下Web.Config配置我能够通过HTTP接收大型XML,但它在HTTPS上存在一些问题。 (HTTPS通信已经正常工作,带有自签名证书和所有)。
<bindings>
<basicHttpBinding>
<binding maxReceivedMessageSize="5242880" maxBufferSize="5242880"/>
</basicHttpBinding>
<basicHttpsBinding>
<binding maxReceivedMessageSize="5242880" maxBufferSize="5242880"/>
</basicHttpsBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
使用SoapUI进行一些测试,只有在更新定义时才会通过HTTPS发送大文件(即使Web.Config文件没有任何更改)。
当外部系统(来自SAP的TIBO / PI)调用我们的服务时,它简化了工作,并显示以下错误消息:
HTTP / 1.1 413请求实体太大 缓存控制:私有 服务器:Microsoft-IIS / 8.0 X-AspNet-Version:4.0.30319 X-SourceFiles:=?UTF-8?B?QzpcVkFMRVxDb2RpZ28tYnJhbmNoLW9uZGExLW9uZGEyLW1lcmdlXFN1cHBsaWVyRmluYW 5jZS5XZWJTZXJ2aWNlc1xDb250cmF0b3Muc3Zj?= X-Powered-By:ASP.NET日期:星期四,09四月2015 22:28:41 GMT内容长度:0
答案 0 :(得分:1)
那是因为你只有basicHttpBinding的配置而不是basicHttpsBinding的配置。同时为基于SSL的绑定创建默认配置:
<bindings>
<basicHttpBinding>
<binding maxReceivedMessageSize="5242880" maxBufferSize="5242880"/>
</basicHttpBinding>
<basicHttpsBinding>
<binding maxReceivedMessageSize="5242880" maxBufferSize="5242880"/>
</basicHttpsBinding>
</bindings>
答案 1 :(得分:1)
尝试此绑定(我明确指定了绑定的名称,因此在服务配置中使用它)
<basicHttpBinding>
<binding maxReceivedMessageSize="10485760">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="10485760" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None"/>
</binding>
</basicHttpBinding>
<basicHttpsBinding>
<binding maxReceivedMessageSize="10485760">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="10485760" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None"/>
</binding>
</basicHttpsBinding>
如果不起作用,请尝试添加
<system.webServer>
<serverRuntime uploadReadAheadSize="2147483646"/>
</system.webServer>
给你配置。希望它有所帮助。