WCF - Das Erstellen von IEnumerableT mit DataMember verursacht Ausnahme: Die zugrunde liegende Verbindung wurde geschlossen: Die Verbindung wurde unerwartet geschlossen

8

Ich habe einen WCF-Dienst erstellt, der IEnumerable<CyberResourceProvisioningAction> zurückgibt.

Der CyberResourceProvisioningAction-Typ hat eine Eigenschaft von AccountInformation IEnumerable<CyberResourceProvisioningActionAccountInfo> . Wenn ich die AccountInformation-Eigenschaft mit DataMemberAttribute dekoriere, erhalte ich die Ausnahme:

  

WCF System.Net.WebException: Die   Grundlegende Verbindung wurde geschlossen: Die   Verbindung wurde unerwartet geschlossen

Offensichtlich eine sehr generische Ausnahme, aber mein Google-fu zeigt an, dass das Problem am häufigsten auftritt, wenn eine große Anzahl von Objekten in einer Sammlung zurückgegeben wird. Die vorgeschlagene Lösung besteht darin, <dataContractSerializer maxItemsInObjectGraph="2147483646"/> festzulegen. Leider hat dies mein Problem nicht behoben. (Ich glaube nicht, dass ich eine kleine Menge an Daten zurückgeben würde).

Die Eigenschaften werden korrekt eingestellt, daher bin ich ziemlich sicher, dass mein Problem mit meiner Serialisierungskonfiguration zu tun hat. Ist etwas falsch mit meinen Klassen, was den WCF-Dienst auf diese Weise zu einem Fehler führt?

%Vor%

CyberResourceProvisioningActionAccountInfo

%Vor%

Wenn zusätzliche Konfigurationsinformationen benötigt werden, lassen Sie es mich wissen und ich werde den Beitrag bearbeiten.

    
ahsteele 03.02.2011, 20:39
quelle

1 Antwort

14

Wegen des Kommentars von "DataContract Programmiermodell Verletzung" links von alexdej habe ich angefangen, ein bisschen näher zu schauen, was war in meinen Eigenschaften. Ich hatte einen Linq-Typ in der Eigenschaft und obwohl es ein IEnumerable war, wurde es nicht für die Serialisierung aufgezählt. Hinzugefügt ein .ToList() und alles ist gut.

    
ahsteele 03.02.2011, 21:07
quelle