请求太大时无法访问端点(30 Mb +)

问题描述:

我试图通过MVC和WCF上传文件。请求太大时无法访问端点(30 Mb +)

我的MVC项目web.config配置为recive大文件。

<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以上,我的项目文件无法到达服务,抛出此错误消息:

“没有监听端点http://localhost:55010/FileService.svc能够接受该消息。”这通常是由不正确的SOAP地址或操作引起的。获取更多细节。 “

谢谢!

+0

你还设置了服务器的[MaxBufferSize](https://msdn.microsoft.com/en-us/library/system.servicemodel.basichttpbinding.maxbuffersize(v = vs.95).aspx)吗?默认值只有64k。任何可能发生超时的机会?任何有可能无法处理消息大小的网络节点(例如入站代理服务器或网关)? –

+0

服务器的MaxBufferSize也是它的权利。超时时间为30分钟。我找到了解决方案。这是服务器的httpRunTime。现在MaxRequestLength属性是“2147483647”并且它的工作。谢谢你的帮助。 –

我固定在服务器与以下行web.config中的问题:

<httpRuntime targetFramework="4.5" enableVersionHeader="false" maxRequestLength="2147483647" executionTimeout="1600" requestLengthDiskThreshold="2147483647" /> 

现在我的问题是System.OutOfMemoryException当我试图将我的流复制到内存流,但它已经超出了这篇文章。

谢谢你们!

如果你正在主持在IIS Express或IIS服务,机会是为请求筛选模块的方式获得的maxAllowedContentLength默认值(默认情况下它是3000) 。

尝试通过添加类似的web.config文件下列增加它:

<system.webServer> 
    <security> 
    <requestFiltering > 
     <requestLimits maxAllowedContentLength="52428800" /> 
    <requestFiltering> 
    </security> 
</system.webServer> 
+0

问题是未配置的标记httpRuntime上的属性maxRequestLength。现在它被设置为2147483647并且web.config的问题已修复。谢谢。 –