2015-08-31 69 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 - 此超時考慮到服務器處理和上傳到您的服務器。