16 Stimmen

Die zugrunde liegende Verbindung wurde geschlossen: Die Verbindung wurde unerwartet geschlossen

Diese Ausnahme wird regelmäßig bei einer SOAP-Anfrage ausgelöst, deren Empfang fast drei Minuten dauert und die 2,25 Megabyte groß ist.

Beim Durchsuchen des Internets finde ich alle möglichen Beiträge, die sich alle mit dem Setzen von Headern für die Anfrage zu befassen scheinen. Einige wollen, dass ich den "Expect:"-Header nicht sende, andere wollen, dass ich den "Keep-Alive:"-Header sende, aber unabhängig von den Headern, die ich sende, erhalte ich immer noch diesen lästigen Fehler. Ich glaube nicht, dass das Setzen irgendwelcher Header die Lösung ist, denn Ich kann die gleiche Anfrage mit "curl" wiederholen und eine Antwort kommt schließlich ohne Probleme zurück, was auch immer .

Meine <httpRuntime maxRequestLength="409600" executionTimeout="900"/> .

Ich habe das Gefühl, dass mir die Möglichkeiten ausgegangen sind. Wenn jemand Hilfe anbieten kann, wäre ich sehr dankbar. Ein paar andere Dinge zu beachten wäre, dass der Server ich bin Requesting Daten aus meinen Händen ist, auch diese Anfragen sind über https und andere Anfragen mit kleineren Antworten funktionieren einwandfrei.

Danke

0 Stimmen

Ich glaube, dass dieses Problem mit lastverteilten Servern zusammenhängt.

3voto

aatdark Punkte 185

Ich habe diesen Fehler, weil meine Datentransfere-Objekte rekursiv aufeinander verweisen.

Zum Beispiel:

Kunde-> (hat) -> Bewertung Bewertung-> (gehört zu) -> Kunde

Sie müssen also Zyklen entfernen.

[DataContract]
public class Rating
{
    private Customer _customer;
    //[DataMember] // <-  EITHER HERE 
    public Customer Customer
    {
        get { return _customer; }
        set { _customer = value; }
    }
}

[DataContract]
public class Customer
{
    private long _customerID;
    [DataMember]
    public long CustomerID
    {
        get { return _customerID; }
        set { _customerID = value; }
    }

    [DataMember] // <- OR HERE
    public Rating Rating
    {
        get { return _rating; }
        set { _rating = value; }
    }
}

0 Stimmen

Danke, Ihre Lösung hat mir geholfen.

3voto

SyntaxError Punkte 3537

Ich habe mehrere Möglichkeiten ausprobiert, um diese Fehlermeldung loszuwerden, bis ich diese Lösung fand: http://kiranpatils.wordpress.com/2008/09/22/the-underlying-connection-was-closed-the-connection-was-closed-unexpectedly-while-returning-data-table-from-wcf-service/

Sie können Ihre List<> in DataSet ändern. Ich vermute, dass DataSet eine größere Datenmenge als List<> verarbeiten kann.

Ich hoffe, es hilft.

2voto

Isaac Punkte 49

Ich habe ein weiteres Feld hinzugefügt, aber die Eigenschaft wurde nicht festgelegt. Das war meine Lösung für den gleichen Fehler.

[DataMember]
public bool HasValue
{
    get { return true; }
    set { }//adding this line made the solution.
}

1voto

Justin Clarke Punkte 582

Dies ist ein allgemeiner Fehler, der ausgelöst wird, wenn ein interner Fehler vorliegt.

Versuchen Sie, die Verfolgung hier hinzuzufügen: http://msdn.microsoft.com/en-us/library/ms732023(v=vs.110).aspx

Sie sehen dann das vollständige Protokoll.

0voto

Roath So Punkte 121

Für WCF mit EF fügen Sie einfach den folgenden Code in die Kontextklasse ein.

base.Configuration.ProxyCreationEnabled = false;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X