WCF服务抛出:接收HTTP响应时发生错误

时间:2015-08-31 12:18:43

标签: c# wcf wcf-serialization

我有WCF服务并且我在我的本地服务器(本地机器)中托管它工作没问题,但当我在服务器(互联网)中托管它时,它会抛出错误

  

接收到http://www.xxxxxxxx.com/Services/WCFService.svc的HTTP响应时发生错误。这可能是由于服务端点绑定不使用HTTP协议。这也可能是由于服务器中止HTTP请求上下文(可能是由于服务关闭)。有关详细信息,请参阅服务器日志。

此WCF服务用于上传pdf文件,也可根据上传的pdf文件进行操作。

当我上传pdf文件并且该文件有更多页面(大约500)时,会出现问题,这需要更多的执行时间(大约6到8分钟)。

如果我上传的PDF文件有100页,200页,300页,那么它运作良好。

注意:所有pdf文件的大小都低于5 MB。

2 个答案:

答案 0 :(得分:1)

处理过程可能需要花费太多时间和客户端超时

<bindings>
  <basicHttpBinding>
    <binding name="IncreasedTimeout"
             sendTimeout="24:00:00">
    </binding>
  </basicHttpBinding>
</bindings>

由于将文件上传到localhost是即时的 - 此超时会考虑服务器处理和上传到服务器。

答案 1 :(得分:0)

Yoy需要为WCF webhttp

设置最大消息大小和缓冲区大小
<bindings>
  <webHttpBinding>
    <binding name="LargeWebBinding"
             maxBufferPoolSize="2147483647"
             maxReceivedMessageSize="2147483647"
             maxBufferSize="2147483647">
      <readerQuotas 
             maxArrayLength="2147483647" 
             maxNameTableCharCount="2147483647"
             maxStringContentLength="2147483647"
             maxDepth="2147483647"
             maxBytesPerRead="2147483647" />
    </binding>

你可以尝试使用它:

<behaviors>
  <serviceBehaviors>
    <behavior name="LargeWebBehavior">
      <dataContractSerializer ignoreExtensionDataObject="true" maxItemsInObjectGraph="2147483647" />
      <serviceDebug includeExceptionDetailInFaults="true" />
      <serviceTimeouts transactionTimeout="00:10:00" />
      <serviceThrottling maxConcurrentCalls="200" maxConcurrentSessions="100"
        maxConcurrentInstances="100" />
    </behavior>
  </serviceBehaviors>
</behaviors>