Frage

Ich habe eine Web-Anwendung, die Abfrage auf einem anderen Server einen Web-Service ist. Der Server, auf dem gleichen Netzwerk befindet, und wird durch eine interne IP, läuft auf Port 8080.

verwiesen

Alle 15 Sekunden wird eine Anforderung gesendet, die eine XML-Antwort mit Auftragsinformationen erhalten. 95% der Zeit, funktioniert dies gut, aber zu zufälligen Zeiten, die Anfrage an den Server ist null, und meldet eine „Antwort gewaltsam durch Remote-Host geschlossen.“

sucht dieses Problem haben andere gesetzt Keep-Alive = false. Dies hat das Problem nicht gelöst. Der Web-Server ausgeführt wird, .NET 3.5 SP1.

Uri serverPath = new Uri(_Url);

// create the request and set the login credentials
_Req = (HttpWebRequest)WebRequest.Create(serverPath);
_Req.KeepAlive = false;
_Req.Credentials = new NetworkCredential(username, password);
_Req.Method = this._Method;

Aufruf an die Antwort:

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
_ResponseStream = response.GetResponseStream();

Das Verfahren hierfür ist GET. Ich habe versucht, das Timeout zu ändern, aber der Standard ist groß genug, um dies zu berücksichtigen.

Die andere Anfrage führen wir ein POST-Daten an den Server zu senden, und wir werden das gleiche Problem immer zufällig auch. Es gibt keine Firewalls diese zu beeinflussen, und wir entschieden, den Virenscanner aus. Irgendwelche Ideen zu helfen, die Lösung dieses ist sehr zu schätzen!

War es hilfreich?

Lösung

Schließen Sie den Antwortstream und Entsorgen der Reaktion selbst? Das ist die häufigste Ursache von „hängt“ mit WebRequest - es gibt eine Grenze, wie viele Verbindungen, die Sie auf die gleiche Maschine zur gleichen Zeit geöffnet werden können. Die GC wird die Verbindungen zum Abschluss bringt schließlich, aber wenn man sie ordnungsgemäß entsorgen ist es kein Problem.

Andere Tipps

würde ich ausschließen Netzwerkprobleme als möglicher Grund nicht für Probleme. Haben Sie laufen einen Ping zu Ihrem Server, um zu sehen, ob Sie verworfene Pakete erhalten, die zu den gleichen Zeiten wie Ihre fehlerhaften Anfragen entsprechen?

Stellen Sie die Zeit Eigenschaft von FtpWebRequest Objekt maximal versuchte ich es mit 4 GB Datei und es funktioniert super.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top