2015-08-31 100 views
1

我有WCF服务,并将其托管在本地服务器(本地计算机)中,但工作正常但当我在服务器(Internet)中托管它时,它会在下面抛出错误WCF服务抛出:接收HTTP响应时发生错误

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

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

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

如果我上传的PDF文件有100页,200页,300页,那时候效果很好。

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

+0

您确定它与PDF文件大小无关吗?内容的限制(页数)似乎很奇怪。 –

+0

@Vojtech:ya我相信 –

+1

听起来你对大型PDF文件的处理有一个只在服务器环境中出现的错误。写一堆日志,看看你能否告诉服务在哪里失败。我会猜测它是内存,网络,权限,或者你编写的一些设置或代码,它们只用于在本地机器上工作,但却被推到了生产环境中。 – Patrick87

回答

0

同比需要设置最大邮件大小和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> 
+0

:已经完成:( –

1

这是可能的处理花费太多时间和客户端超时之前

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

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