1

我有 WCF 服务,我将它托管在我的本地服务器(本地计算机)中,它工作正常,但是当我将它托管在服务器(互联网)中时,它会抛出以下错误

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

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

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

如果我上传具有 100 页、200 页、300 页的 pdf 文件,那么它当时运行良好。

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

4

2 回答 2

1

处理可能需要太多时间并且客户端在继续之前超时

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

由于将文件上传到您的本地主机是即时的 - 此超时考虑了服务器处理和上传到您的服务器。

于 2015-08-31T12:34:47.510 回答
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>
于 2015-08-31T12:26:09.970 回答