Benutzer mit den meisten Antworten
VS2010: String in Datei auf Webserver schreiben

Frage
-
Hallo Forum,
Ich habe einen Webmonitor für eine Turniersoftware programmiert, der einfach Daten aus meiner Anwendung in eine Datei auf dem Webserver schreibt und diese so ständig aktualisiert.
Um das ganze zu starten, habe ich folgende Funktion:
Public Function LoadUp(aktAutomat As String) As Boolean Dim method As String = "STOR" Dim client As WebClient = New WebClient With { .Credentials = New NetworkCredential(FTPUser, FTPKennwort) } Try Dim reply As String = client.UploadString(FTPServer & FTPVerz & "/nextgame.txt", method, aktAutomat) 'Dim reply As String = client.UploadString("werse.bitpalast.net/httpdocs/nextgame.txt", method, aktAutomat) Catch ex As System.Net.WebException MsgBox("Es ist ein Fehler aufgetreten! Bitte die Turnierleitung informieren!", vbOKOnly, "Fehler bei der Web-Anzeige...") Return False End Try Return True End Function
Das funktionierte bisher auch wunderbar. Jetzt haben wir mit unserer Webseite die Domain gewechselt und mit dem neuen Anbieter bekomme ich das nicht hin. Obwohl die Daten für ftp alle korrekt sind und ich mich dort auch anmelden kann.
Hat jemand einen Tipp, woran das liegen kann? Das Programm rauscht immer in den Catch zweig rein. Der selbe code mit dem alten Anbieter funktioniert einwandfrei.
LG Micha
Antworten
-
Hallo Micha,
kannst Du die Datei (die ja anscheinend schon von 2018 ist?) über einen normalen FTP Client (bspw. FileZilla oder ähnliches) hochladen bzw. löschen?
Ich würde jetzt einfach mal annehmen, dass die Datei durch irgendwas noch im Zugriff ist.
Oder wird sie jedesmal neu mit 0 Bytes angelegt und kann dann nicht mehr geschrieben werden?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport- Als Antwort markiert MKnost Mittwoch, 27. März 2019 23:37
-
Hallo Stefan, ich habe jetzt den Grund herausgefunden.
Mein Webspace ist im Ordner /httpdocs eingerichtet. Der FTP-Benutzer ist mit seinem Root-Verzeichnis auf dieses Verzeichnis konfiguriert, sodass ich anstatt /httpdocs nur das root angeben muß /
Sorry, war ein Fehler meinerseits bei der FTP Konfiguration. Danke trotzdem für Deine Mühen.
LG Micha
- Als Antwort markiert Stefan FalzModerator Donnerstag, 28. März 2019 07:58
Alle Antworten
-
Hi,
nuja, es wäre evtl. ne Idee, den Fehler mal nicht einfach wegzuwerfen, sondern sich den zumindest irgendwo zu merken. Dann hätte man mal einen Ansatz, wo man suchen kann.
Ergo: Poste bitte den vollständigen Inhalt dessen, was ex.ToString() zurückgibt. Dann schauen wir weiter.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport -
Hallo Stefan,
ja sorry, hast natürlich recht... Das ist der Wert, den ex anzeigt:
?ex {"Der Remoteserver hat einen Fehler zurückgegeben: (550) Datei nicht verfügbar (z.B. nicht gefunden oder kein Zugriff)."} Data: {System.Collections.ListDictionaryInternal} HResult: -2146233079 HelpLink: Nothing InnerException: Nothing Message: "Der Remoteserver hat einen Fehler zurückgegeben: (550) Datei nicht verfügbar (z.B. nicht gefunden oder kein Zugriff)." Response: {System.Net.FtpWebResponse} Source: "System" StackTrace: " bei System.Net.WebClient.UploadDataInternal(Uri address, String method, Byte[] data, WebRequest& request)" & vbCrLf & " bei System.Net.WebClient.UploadString(Uri address, String method, String data)" & vbCrLf & " bei DGWPlaner.modStart.LoadUp(String aktAutomat) in D:\ENTWICKLUNG\DGWPlaner\modStart.vb:Zeile 78." Status: ProtocolError {7} TargetSite: {Byte[] UploadDataInternal(System.Uri, System.String, Byte[], System.Net.WebRequest ByRef)}
Die Funktion LoadUp wird von folgendem Button-Click aufgerufen....
Private Sub cmdMoniAn_Click(sender As Object, e As EventArgs) Handles cmdMoniAn.Click If txtFTPUser.Text <> "" And txtPasswort.Text <> "" And txtWebserver.Text <> "" Then FTPServer = "ftp://" & txtWebserver.Text FTPUser = txtFTPUser.Text FTPKennwort = txtPasswort.Text FTPVerz = txtFTPVerz.Text WebMon = True NextGameNr = "" If Not LoadUp(NextGameNr) Then Exit Sub Else MsgBox("Der Monitor wurde erfolgreich gestartet.", vbOKOnly + vbExclamation, "Hinweis...") Main.WebMonitorKonfigurierenToolStripMenuItem.Text = "Webmonitor aktiv" Main.WebMonitorKonfigurierenToolStripMenuItem.BackColor = Color.Lime End If Me.Close() Else MsgBox("Du musst die Zugangsdaten für den Server eingeben.", vbOKOnly + vbExclamation, "Fehler...") Exit Sub End If End Sub
Auf dem Webserver sieht das ganze so aus: Ich habs auch schon mit den rechten 777 für die Datei versucht.
LG Micha
-
Hallo Micha,
kannst Du die Datei (die ja anscheinend schon von 2018 ist?) über einen normalen FTP Client (bspw. FileZilla oder ähnliches) hochladen bzw. löschen?
Ich würde jetzt einfach mal annehmen, dass die Datei durch irgendwas noch im Zugriff ist.
Oder wird sie jedesmal neu mit 0 Bytes angelegt und kann dann nicht mehr geschrieben werden?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport- Als Antwort markiert MKnost Mittwoch, 27. März 2019 23:37
-
Hallo Stefan, ich habe jetzt den Grund herausgefunden.
Mein Webspace ist im Ordner /httpdocs eingerichtet. Der FTP-Benutzer ist mit seinem Root-Verzeichnis auf dieses Verzeichnis konfiguriert, sodass ich anstatt /httpdocs nur das root angeben muß /
Sorry, war ein Fehler meinerseits bei der FTP Konfiguration. Danke trotzdem für Deine Mühen.
LG Micha
- Als Antwort markiert Stefan FalzModerator Donnerstag, 28. März 2019 07:58