簡體   English   中英

Windows服務(413)請求實體太大

[英]Windows Service (413) Request Entity Too Large

請不要將其作為重復項刪除。我有一個Windows服務,正在向其中傳遞對象數組。 當數組包含少於150個對象時,它將成功工作。 當我傳遞超過150個對象時,我收到(413)請求實體太大錯誤。
我已經嘗試了其他文章中有關readerQuotas節點值和maxReceivedMessageSize的反饋,但是我仍然收到該錯誤,並且我仍然在做錯誤的事情。 這是Windows服務的app.config:

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="basicHttpBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647">
            <readerQuotas maxDepth="2000000000"
                  maxStringContentLength="2000000000"
                  maxArrayLength="2000000000" 
                  maxBytesPerRead="2000000000" 
                  maxNameTableCharCount="2000000000" />
            </binding>
        </basicHttpBinding>
        <wsHttpBinding>
            <binding name="wsHttpBindingNoSecurity" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
                <security mode="None">
                    <transport clientCredentialType="None"/>
                    <message establishSecurityContext="false" negotiateServiceCredential="false"/>
                </security>
                <readerQuotas maxDepth="2000000000"
                  maxStringContentLength="2000000000"
                  maxArrayLength="2000000000" 
                  maxBytesPerRead="2000000000" 
                  maxNameTableCharCount="2000000000" />
            </binding>
        </wsHttpBinding>
        <mexHttpBinding>
            <binding name="mexHttpBinding"/>
        </mexHttpBinding>
    </bindings>
    <behaviors>
        <serviceBehaviors>
            <behavior name="Service1Behavior">
                <serviceMetadata httpGetEnabled="true"/>
                <serviceDebug includeExceptionDetailInFaults="true"/>
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <services>
        <service name="SE.Responder.Integration.AmiOutboundService.AmiObService" behaviorConfiguration="Service1Behavior">
            <endpoint address="wsHttp" binding="wsHttpBinding" bindingConfiguration="wsHttpBindingNoSecurity" contract="SE.Responder.Integration.AmiOutboundService.IAmiObService">
                <identity>
                    <dns value="localhost"/>
                </identity>
            </endpoint>
            <endpoint address="basicHttp" binding="basicHttpBinding" bindingConfiguration="basicHttpBinding" name="basicHttp" contract="SE.Responder.Integration.AmiOutboundService.IAmiObService"/>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
            <host>
                <baseAddresses>
                    <add baseAddress="http://localhost:8732/SE.Responder.Integration.AmiOutboundService/AmiObService/"/>
                </baseAddresses>
            </host>
        </service>
    </services>
</system.serviceModel>

這是將數據傳遞到Windows服務的可執行文件的app.config:

<system.serviceModel>
<bindings>
  <wsHttpBinding>
    <binding name="WSHttpBinding_IAmiObService" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" >
        <readerQuotas maxDepth="2000000000"
                  maxStringContentLength="2000000000"
                  maxArrayLength="2000000000" 
                  maxBytesPerRead="2000000000" 
                  maxNameTableCharCount="2000000000" />
    </binding>
  </wsHttpBinding>
</bindings>
<client>
  <endpoint address="http://localhost:8732/SE.Responder.Integration.AmiOutboundService/AmiObService/AmiOBService" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAmiObService" contract="AmiObService.IAmiObService" name="WSHttpBinding_IAmiObService" />
</client>

查看存在此問題的應用程序的源代碼后,我發現wcf服務托管在C#代碼中。 然后,我按照下面的堆棧溢出問題( 在控制台應用程序中的WCF托管服務中的MaxReceivedMessageSize中所述)在代碼中應用了此修復程序 ,特別是以下幾行:var wsHttpBinding = new WSHttpBinding(); wsHttpBinding.MaxReceivedMessageSize = int.MaxValue; Service.AddServiceEndpoint(typeof(TInterfaceContract),wsHttpBinding,EndpointAddress);

糾正了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM