Codefieber.de

IT-Blog

IIS7 – (413) Request Entity Too Large

| Keine Kommentare

Wer im BizTalk einen WCF-Service über einen SendPort anspricht und zum Beispiel eine 10MB große XML-Datei darüber senden möchte, der erhält ggf. die Fehlermeldung

The adapter failed to transmit message going to send port “TestPortToDatabase” with URL “http://localhost/ImporterService/Import.svc”. It will be retransmitted after the retry interval specified for this Send Port. Details:”System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (413) Request Entity Too Large. —> System.Net.WebException: The remote server returned an error: (413) Request Entity Too Large.

Das bedeutet, dass die Datei in unserem Fall zu groß ist. Denn der Defaultwert von maxReceivedMessageSize beträgt 65536, was deutlich zu klein ist.

Hier die komplette Fehlermeldung:

The adapter failed to transmit message going to send port "TestPortToDatabase" with URL "http://localhost/ImporterService/Import.svc". It will be retransmitted after the retry interval specified for this Send Port. Details:"System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (413) Request Entity Too Large. ---> System.Net.WebException: The remote server returned an error: (413) Request Entity Too Large.
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result)
   --- End of inner exception stack trace ---

Server stack trace: 
   at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.EndRequest(IAsyncResult result)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at System.ServiceModel.Channels.IRequestChannel.EndRequest(IAsyncResult result)
   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient2.RequestCallback(IAsyncResult result)".

In der Web.config Datei des Webservices sollte dann folgendes mit eingefügt werden.

<configuration>
  <system.serviceModel>

    <bindings>
      <basicHttpBinding>
        <binding name="Binding1" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" >
          <security mode="None" />
        </binding>
      </basicHttpBinding>
    </bindings>

  </system.serviceModel>

</configuration

Somit wird die Dateigrößenbeschränkung durch die erhöhte “maxBufferSize” und die “maxReceivedMessageSize” von 2147483647 byte sozusagen umgangen.

avatar

Autor: Pascal

Codefieber.de wird von Pascal Betke geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.