none
Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host. RRS feed

  • Frage

  • Sehr geehrte Damen und Herren,

    ich versuche durch ein Programm aus SharePoint nach ELO Dokumente zu kopieren.

    Aus einer SharePoint Webapplikation ist das möglich.

    Aus einer anderen SharePoint Webapplikation ist das nicht möglich.

    Ich erhalte folgenden Fehler:

    Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host. System.IO.IOException: Unable to write data to 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.Write(Byte[] buffer, Int32 offset, Int32 size)

    Oder folgenden Fehler:

    The remote server returned an error: (500) Internal Server Error. System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
       at System.Net.HttpWebRequest.GetResponse()

    Ich danke Ihnen für Ihre Hilfe.


    Freitag, 14. Dezember 2018 09:55

Antworten

  • Die URL Adresse der Verbindung zu dem Server mit der "ELO" Applikation war ohne SSL (http://...).

    Nach der Änderung der URL Adresse mit SSL (https://…) wurde das Programm nicht mehr an den zweiten Server gesendet und nicht mehr untergebrochen.

    • Als Antwort markiert Laco1 Dienstag, 18. Dezember 2018 15:29
    Dienstag, 18. Dezember 2018 15:29

Alle Antworten

  • Solche Fehler musst du per Try/Catch abfangen und die Verbindung dann versuchen neu zu öffnen.
    Bei Web-Anwendungen treten Session-Timeouts auf (je nach App-Einstellung ggf. unterschiedlich), so dass Verbindungen geschlossen werden.

    Der normale Vorgang bei Web-Applications ist aber auch, Verbindungen zu schließen wenn man fertig ist. Den rest erledigt dann der Application/Connection-Pool.

    Also i.d.R. so:

    - OpenConnection
    - Read-/Write-Operation
    - CloseConnection

    Wenn die Connection gepoolt wird, bekommst du beim Open eine aus dem Pool, ansonsten halt eine Neue.

    Freitag, 14. Dezember 2018 11:48
  • Danke für die Antwort.

    Eine Webapplikation erhaltet nie den Fehler.

    Eine andere Webapplikation erhaltet immer den Fehler.

    Das ausführende Programm ist identisch. Berechtigungen in der Zielapplikation sind identisch für den Benutzer, welcher die Verbindung herstellt. 

    Ein Ordner in der Zielapplikation wird aus beiden Webapplikationen immer erstellt.

    Das Programm bricht bei dem Versuch ein Dokument zu kopieren ab. 

    Könnte irgendwo in den Einstellungen des Zielservers die Ursache liegen?

    Freitag, 14. Dezember 2018 13:33
  • Da du deinen Code verheimlichst;-), kann man wieder nur "im Nebel stochern".

    Die Fehlermeldung ist jeden falls eindeutig.
    Die Verbindung, mit der du arbeiten willst, ist getrennt oder kann beim Versuch des Verbindens nicht aufgebaut werden. Hierfür musst du sämtliche benötigten Ressourcen prüfen:

    - Ist der Server erreichbar
    - stimmen die Verbindungseinstellungen
    - stimmen die Berechtigungen (Useranmeldung beim Zielserver)

    Ggf. kannst du deine Anwendung ja debuggen.
    Wenn du Visual Studio hast, kannst du dich an den Prozess des Webservers dranhängen.
    Ggf. sind dazu die Remotedebugger-Tools von VS auf dem Server zu installieren und dann auch zu starten.

    Das klappt ganz hervorragend sogar über VPN's;-).

    Freitag, 14. Dezember 2018 13:48
  • Die Verbindung wird immer aufgebaut.

    Ein neue Ordner wird auch immer in der Zielapplikation erstellt.

    Nur wenn aus einer Quelle Webapplikation die Aktion durchgeführt wird, bricht das Programm bei dem Versuch ein Dokument zu kopieren ab.

    Deshalb möchte ich gerne die Einstellungen des Windows Servers des Zielprogramms überprüfen lassen.

    Ich selbst habe kein Zugriff auf diese Server.

    Wo kann in dem Windows Server eingestellt sein, dass aus bestimmten Quellen Dokumente nicht kopiert werden können?

    Freitag, 14. Dezember 2018 14:16
  • Ohne Code kann man da nichts prüfen.

    Welche Art Verbindung wird aufgebaut?
    Ist es ein SQL-Server oder überhaupt eine DB?
    Mit welchem User greifst du zu?
    Hat dieser user Lese-Berechtigung?

    Wenn die Verbindung im Programm aufgebaut ist, kannst du da einen Status abfragen ob dies auch stimmt?

    "Das Leben ist ein Quiz...dada".

    Freitag, 14. Dezember 2018 15:12
  • Die Verbindung wir durch ein Schnitstellenprogramm aufgebaut.

    Die Zielapplikation ist ELO. Ich weiss nicht wo diese Applikation die Daten ablegt.

    Verbindung wird durch ein Windows Benutzer durchgeführt.

    Dieser Benutzer hat Lese-Berechtigung.

    Ich habe Logs in das Program eingebaut.

    Es gibt zwei SharePoint Quellen Webapplikationen:

    SharePoint1

    SharePoint2

    Es gibt eine ELO Ziel Applikation:

    ELO1

    Folgend läuft das Programm:

    SharePoint1->Verbindung zum ELO1:OK->Ordner Erstellung im ELO1:OK->Datei kopieren nach ELO1:OK

    SharePoint2->Verbindung zum ELO1:OK->Ordner Erstellung im ELO1:OK->Datei kopieren nach ELO1:Abbruch

    Deshalb möchte ich gerne die Einstellungen des Windows Servers überprüfen lassen, im welchen die ELO Applikation abgelegt ist.

    Welche Einstellungen im Windows Server gibt es, welche das Kopieren von Dokumenten aus bestimmten Quellen erlauben oder verbieten können?

    Freitag, 14. Dezember 2018 15:44
  • Dies hängt i.d.R. davon ab, unter welchem User die Web-Anwendung läuft.
    Man kann sich mit der Windows-Authentifizierung anmelden oder einen Standarduser verwenden.

    Hierzu müsste mal mal den Prozess der Web-Anwendung und dessen User-Einstellung zur Laufzeit prüfen.

    Sonntag, 16. Dezember 2018 12:32
  • In beiden Fällen läuft die Applikation unter dem selben Windows Benutzer.

    Die Ziel Applikation ist immer die gleiche "ELO1".

    Die Quellen Applikationen sind zwei mit dem identischen Code "SharePoint1" und "SharePoint2".

    Aus beiden Quellen werden Ordner in der Ziel Applikation erstellt.

    Aus einer Quelle wird die Datei in die Ziel Applikation kopiert aus der anderen nicht.

    Ich vermute, dass in dem Ziel Server das Kopieren von Dateien nur aus bestimmten Quellen erlaubt ist.

    Wo kann so eine Sperre für das Kopieren von Dateien in dem Windows Server eingestellt sein?

    Montag, 17. Dezember 2018 07:29
  • Vertrauenswürdige Standorte?
    Montag, 17. Dezember 2018 08:20
  • Wo finde ich im Windows Server die Einstellung "Vertrauenswürdige Standorte"?

    Montag, 17. Dezember 2018 08:42
  • Dazu muss man wohl die Gesamttopologie betrachten:

    Sharepoint1 (Server1?) [=> Web-Server ?] => ELO-Server
    Sharepoint2 (Server2?) [=> Web-Server ?] => ELO-Server

    Der ELO-Server wird ja wohl immer derselbe sein, ist der Sharepointserver immer ein anderer und gibt es einen Web-Server?

    Wird letztlich ein Copy-File aufgerufen?
    Könnte man technisch nicht die Datei selber von der Quelle lesen und im Ziel schreiben?
    Dann laufen Berechtigungen u.U. eben anders.

    Montag, 17. Dezember 2018 08:50
  • Quelle "SharePoint1" ist eine Webapplikation. 

    Quelle "SharePoint2" ist eine andere Webapplikation.

    Beide sind in der selben Farm.

    "ELO1" ist die einzige Zielapplikation aus der beide Quellen versuchen Ordner erstellen und Dokumente zu kopieren.

    Das Erstellen der Ordner klappt aus beiden Quellen.

    Ein Copy-File wird aufgerufen.

    Das Kopieren der Dateien klappt nur aus einer Quelle.

    Deshalb vermute ich, dass in dem Ziel Windows Server eine Einstellung sein könnte, welche das Kopieren nur aus bestimmten Quellen erlaubt.

    Wo im Windows Server können solche Einstellungen sein, welche das Kopieren von Dokumenten aus unterschiedlichen Quellen steuern?

    Montag, 17. Dezember 2018 09:50
  • Es liegt an dem "Loadbalancer" der Server, an welchen die "ELO" Applikation läuft.

    Wenn der "Loadbalancer" nur ein Server zur Verfügung hat, dann funktioniert auch das Kopieren der Dokumente.

    Wie kann man den "Loadbalancer" einstellen, dass die Kommunikation zwischen "SharePoint" und "ELO" durch die selben Server durchläuft von der Anbindung durch das Erstellen des Ordners bis zu dem Kopieren der Dokumente in den Ordner? 

    Montag, 17. Dezember 2018 14:59
  • Dann sollte man die beteiligten Server des Loadbalancers in Bezug zur ELO-Software identisch berechtigen.
    Auf dem "ELO"-Server gibt es ggf. Eventeinträge (Systemlogs) die auf Authentifizierungsfehler hindeuten könnten.
    Ggf. lässt sich da was entnehmen.

    Wie man dem Loadbalancer für bestimmte Anwendungen nur 1 Server zuweist muss dessen Dokumentation hergeben.

    Montag, 17. Dezember 2018 16:08
  • Die URL Adresse der Verbindung zu dem Server mit der "ELO" Applikation war ohne SSL (http://...).

    Nach der Änderung der URL Adresse mit SSL (https://…) wurde das Programm nicht mehr an den zweiten Server gesendet und nicht mehr untergebrochen.

    • Als Antwort markiert Laco1 Dienstag, 18. Dezember 2018 15:29
    Dienstag, 18. Dezember 2018 15:29