"Eine vorhandene Verbindung wurde zwangsweise geschlossen durch remote-host" Fehler im IIS, aber nicht VS dev server

Durch meine Anwendung, ich bin mit WebClient auf Dateien zugreifen, die online-und Verarbeitung. Hier ist ein Beispiel:

using (var webClient = new WebClient())
{
    webClient.Credentials = new NetworkCredential(userName, password, domain);
    var bytes = webClient.DownloadData(urlToWorkbook);
    Stream stream = new MemoryStream(bytes);
    var workbook = new Workbook(stream);
    stream.Close();
    stream.Dispose();
    return workbook;
}

Wenn ich die Anwendung entwickeln und testen über Visual Studio-debugger, alles hat gut funktioniert. Nun habe ich die Anwendung weitergegeben und es läuft über IIS, bekomme ich die folgende Fehlermeldung auf der webClient.DownloadData() nennen:

System.Net.WebException: An exception occurred during a WebClient request. System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)

EDIT: eine Andere seltsame Sache ist, dass wenn ich diesen code auf meinen controller, Index-action (das ist ein MVC -) app, führt Sie die DownloadData () - Aufruf erfolgreich alles. Es ist nur, wenn das Gespräch eingebettet ist in meiner Anwendung (wo es nötig), dass es fehlschlägt.

Veröffentlichte ich meine Seite lokal auf meinem Rechner IIS und ich bekomme die gleiche Ausnahme. Ich fühle mich wie ich versucht habe, eine million code-Lösungen. Es würde scheinen, es ist ein Unterschied zwischen VS-web-server und IIS. Irgendeine Idee was ich tun könnte IIS?

  • Ich erinnere mich, ich verwendet, um diese Ausnahme beim Versuch, eine Verbindung zu Oracle-Datenbank nach einer bestimmten Leerlaufzeit. Gibt es eine Datenbank-Verbindung beteiligt sind, in Ihrem WebClient Kommunikationsprozess?
  • Es gibt keine Datenbank in meiner Anwendung überhaupt.
  • Nur ein Vorschlag, Sie könnten versuchen, schnüffeln die Daten zwischen dem webserver und der Remotecomputer zu sehen, wenn die Anfrage korrekt aussieht (wenn das überhaupt möglich ist). Es klingt für mich so, als ob der remote-host lehnt die Verbindung aus irgendeinem Grund (könnte sein gesehen in den Netzwerk-Paketen).
  • Siehe mein edit.
  • Hm... was meinst du mit "eingebettet in meine Bewerbung", meinst du, dass Sie rufen Sie eine Aktion, und irgendwo anders (in eine Instanz einer anderen Instanz oder so) da ist dein code?
  • Ich meinte nur, dass wenn es in meiner Index action für Testzwecke, es wird als laden der Seite grundsätzlich erste Sache. Wo Sie letztlich benötigt werden, ist der code für ein Formular Einreichen, welches eine Reihe von Dingen, einschließlich der DownloadData () - Aufruf.
  • mhm ok verstehe... Ehrlich, ich habe keine Idee 🙁
  • Haben Sie versucht, machen die Anrufe von außen eine web-app? Vielleicht machen Sie eine kleine Konsole app und führen Sie den gültigen code ein. Kann nichts beweisen, aber es wäre gut zu wissen.
  • Ich habe nicht nur, weil es funktioniert manchmal in meinem app und nicht andere Zeiten.

InformationsquelleAutor im1dermike | 2014-07-03
Schreibe einen Kommentar