Permalink

0

WCF System.ServiceModel.CommunicationException

Die Gefahr hinnehmend, das dieses Blog zum Error/Solution Sammelsurium wird, hier kurz ein Tipp, welcher evtl. bei der Fehlerbehebung hilft. 😉

Fehlermeldungen


System.ServiceModel.CommunicationException
Die maximale Wiederholungsanzahl wurde ohne Antwort vom Remoteendpunkt überschritten. Die zuverlässige Sitzung war nicht erfolgreich. Dies weist häufig darauf hin, dass der Remoteendpunkt nicht mehr verfügbar ist.


System.ServiceModel.CommunicationException
An error occurred while receiving the HTTP response to "http://localhost/NyanCatService". This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.

Lösung

In meinem Fall, konnte der WCF-Service die vom Client geforderte Informationen nicht erfolgreich serialisieren, weil es sich um zu viele Objekte handelte. Die schnelle und (evtl. abhängig vom Szenario) richtige Problemlösung ist, den Wert der Eigenschaft maxItemsInObjectGraph des DataContractSerializer zu vergrößern. Entgegen der Beschreibung auf der MSDN-Seite, ist der Standardwert nicht Int32.MaxValue. Durch folgende Node in deiner Config (sowohl Client, als auch Server), wird die Eigenschaft tatsächlich auf den maximalen Wert erhöht.

<behaviors>
   <serviceBehaviors>
      <behavior name="Knigge.HasselhoffBehavior">
         <strong><dataContractSerializer maxItemsInObjectGraph="2147483647"/></strong>
      </behavior>
   </serviceBehaviors>
</behaviors>

Die gleiche Eigenschaft, allerdings mit einer anderen Funktionalität, kann auch direkt beim ServiceBehaviour eingestellt werden. Die zur Umgebung passenden Werte, hängen von dem jeweiligen Einzelfall ab.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.