Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF服务抛出:接收HTTP响应时出错_C#_Wcf_Wcf Serialization - Fatal编程技术网

C# WCF服务抛出:接收HTTP响应时出错

C# WCF服务抛出:接收HTTP响应时出错,c#,wcf,wcf-serialization,C#,Wcf,Wcf Serialization,我有WCF服务,我把它放在我的本地服务器(本地机器)上,它工作正常,但当我把它放在服务器(互联网)上时,它会抛出下面的错误 接收对的HTTP响应时出错。这可能是由于服务端点绑定未使用HTTP协议造成的。这也可能是由于服务器中止了HTTP请求上下文(可能是由于服务关闭)。有关详细信息,请参阅服务器日志 此WCF服务用于上传pdf文件,并根据上传的pdf文件进行操作 问题发生在我上传pdf文件时,该文件有更多的页面(大约超过500页),此时需要更多的执行时间(大约6到8分钟) 如果我上传的pdf文件

我有WCF服务,我把它放在我的本地服务器(本地机器)上,它工作正常,但当我把它放在服务器(互联网)上时,它会抛出下面的错误

接收对的HTTP响应时出错。这可能是由于服务端点绑定未使用HTTP协议造成的。这也可能是由于服务器中止了HTTP请求上下文(可能是由于服务关闭)。有关详细信息,请参阅服务器日志

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

问题发生在我上传pdf文件时,该文件有更多的页面(大约超过500页),此时需要更多的执行时间(大约6到8分钟)

如果我上传的pdf文件有100页,200页,300页,在那个时候它工作得很好


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

您需要为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>

处理过程可能花费了太多时间,并且客户端在处理之前超时

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


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

您确定它与PDF文件大小无关吗?对内容(页面)的限制似乎很奇怪。@Vojtech:ya我敢肯定,听起来你处理大型PDF文件时有一个只在服务器环境中出现的错误。写一堆日志,看看你是否能说出服务失败的地方。我猜可能是内存、网络、权限,或者是您编写的某些设置或代码,这些设置或代码只打算在本地机器上工作,但被推到了生产环境中。