2016-07-28 116 views
0

我的系統:Web服務的錯誤:HTTP 413:請求實體太大

IIS 7.5

Visual Studio 2010中

框架4

我不得不作出這樣的接收文件的Web服務(字節數組)。 我已經制作了一個控制檯應用程序(添加服務引用 - >高級 - >添加Web引用)。隨着http它是完美的工作。但我需要使用https來使用它。所以,當我嘗試使用https使用它時,它給我HTTP 413:請求實體太大。我一直在閱讀很多,但這是不可能的。我試圖放入Web服務的webconfig:

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="BasicHttpBinding_INopService" maxReceivedMessageSize="22147483647" maxBufferPoolSize="252428800" maxBufferSize="22147483647"> 
      <readerQuotas maxDepth="256" maxStringContentLength="22147483647" maxArrayLength="2222216384" 
      maxBytesPerRead="2222220000" maxNameTableCharCount="2222216384" ></readerQuotas> 
     </binding> 
     </basicHttpBinding> 

<basicHttpBinding> 
     <binding name="HttpBigMessage" 
      receiveTimeout="00:10:00" 
      sendTimeout="00:10:00" 
      maxReceivedMessageSize="2147483647" > 
      <security mode="None" /> 
     </binding> 
     </basicHttpBinding> 

    </bindings> 

    <client> 
     <endpoint address="https://localhost/hmenu/GetData.asmx" 
     binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_INopService" 
     contract="PhotoSavingsService.INopService" name="BasicHttpBinding_INopService" /> 
    </client> 


    </system.serviceModel> 

該文件不是太大。 我需要把最大尺寸放在哪裏?

通過增加線謝謝

+0

看看這裏http://stackoverflow.com/questions/22094701/maxrequestlength-in-web-config-makes-an-internal-error –

+0

沒辦法。我做了一個虛擬的方法,只返回true,它發生的是一樣的... – Za7pi

+1

看看這個https://blogs.msdn.microsoft.com/dsnotes/2015/08/21/large-file- upload-failure-for-web-application-calling-wcf-service-413-request-entity-too-large/ –

回答

0

很多時候

<httpRuntime maxRequestLength="214748364" executionTimeout="9999" 
targetFramework="4.5"/> 

給500錯誤

請找出您的網路 配置文件的媒體鏈接存在 嗨 如果一般發生500錯誤那麼在 web.config中有任何錯誤的配置首先修復。 在這裏,我提供413實體上的HTTPS協議的問題太大修復

web.config文件之前發出的傳輸模式固定

<bindings> 
    <webHttpBinding> 
    <binding name="RestServiceBindingConfig"> 
     <security mode="Transport"></security> 
    </binding> 
    <binding name="HttpRestServiceBindingConfig"> 
     <security mode="None"></security> 
    </binding> 
<binding maxBufferPoolSize="76000000" maxReceivedMessageSize="19000000"> 
     <readerQuotas maxDepth="32" maxStringContentLength="19000000" 
maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/> 
    </binding> 
    </webHttpBinding> 
</bindings> 
<behaviors> 

我們只是複製粘貼readerquotas maxBufferPoolSize maxReceivedMessageSize RestServiceBindingConfig本作的欺騙第一 RestServiceBindingConfig用於https第二個HttpRestServiceBindingConfig 約束爲http

的web.config問題後固定

<bindings> 
    <webHttpBinding> 
    <binding name="RestServiceBindingConfig" maxBufferPoolSize="2147483647" 
maxReceivedMessageSize="2147483647"> 
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" 
      maxArrayLength="2147483647" maxBytesPerRead="4096" 
      maxNameTableCharCount="16384" /> 
     <security mode="Transport"></security> 
    </binding> 
    <binding name="HttpRestServiceBindingConfig" 
maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"> 
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" 
      maxArrayLength="2147483647" maxBytesPerRead="4096" 
      maxNameTableCharCount="16384" /> 
     <security mode="None"></security> 
    </binding> 

    </webHttpBinding> 
</bindings> 
<behaviors> 
+0

請編輯您的答案,您可以看到代碼與您的解釋混合在一起,如果您將代碼與解釋分開 –