我试图通过MVC和WCF上传文件。
我在MVC项目上的web.config配置为重用大文件。
<binding name="BasicHttpBinding_IFile" closeTimeout="00:30:00"
openTimeout="00:30:00" sendTimeout="00:30:00" maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647" messageEncoding="Mtom" />
当我调用WCF时会出现问题。端点在MVC项目上是正确的,WCF上的web.config具有此绑定:
<basicHttpBinding>
<binding name="FileUploadServiceBinding"
transferMode="Streamed"
messageEncoding="Mtom"
maxBufferPoolSize="2147483647"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647"
receiveTimeout="00:30:00"
openTimeout="00:30:00"
closeTimeout="00:30:00"
sendTimeout="00:30:00">
<security mode="None">
<transport clientCredentialType="None" />
</security>
<readerQuotas maxDepth="100"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
</binding>
</basicHttpBinding>
我发送25Mb的文件并且它正常工作,但是当我尝试上传30Mb或更多的文件时,我的项目无法访问该服务,抛出此错误消息:
&#34; http://localhost:55010/FileService.svc没有能够接受该消息的侦听端点。&#34;这通常是由不正确的SOAP地址或操作引起的。获取更多细节。 &#34;
谢谢!
答案 0 :(得分:0)
如果您在IIS Express或IIS中托管服务,则“请求过滤”模块的maxAllowedContentLength
的默认值可能会受到影响(默认情况下为30000000) )。
尝试通过在web.config文件中添加以下内容来增加它:
<system.webServer>
<security>
<requestFiltering >
<requestLimits maxAllowedContentLength="52428800" />
<requestFiltering>
</security>
</system.webServer>
答案 1 :(得分:0)
我使用以下行修复了服务器web.config上的问题:
<httpRuntime targetFramework="4.5" enableVersionHeader="false" maxRequestLength="2147483647" executionTimeout="1600" requestLengthDiskThreshold="2147483647" />
现在我的问题是System.OutOfMemoryException,当我试图将我的流复制到内存流时,但它不在这个后期escope中。
谢谢你们!