Ausgabeprotokoll mit FtpWebRequest

Ich frage mich, ob es möglich ist, Ausgabeprotokoll für meinen FTP-Client mit FtpWebRequest .

Etwas wie das:

 [R] USER xxx [R] 331 Please specify the password. [R] PASS (hidden) [R] 230 Login successful. [R] SYST [R] 215 UNIX Type: L8 [R] FEAT [R] 211-Features: [R] EPRT [R] EPSV [R] MDTM [R] PASV [R] REST STREAM [R] SIZE [R] TVFS [R] 211 End [R] PWD [R] 257 "/" [R] CWD / [R] 250 Directory successfully changed. [R] PWD [R] 257 "/" [R] TYPE A [R] 200 Switching to ASCII mode. [R] PASV [R] 227 Entering Passive Mode (10,232,201,81,141,175) [R] Opening data connection IP: 10.232.201.81 PORT: 36271 [R] LIST -al [R] 150 Here comes the directory listing. [R] 226 Directory send OK. 

Diese Ausgabe ist zum Beispiel beim Verbinden …

Mein aktueller Code macht nur folgendes:

 // Get the object used to communicate with the server. FtpWebRequest request = (FtpWebRequest)WebRequest.Create(string.Format("ftp://{0}", addrEndPoint)); request.Method = WebRequestMethods.Ftp.ListDirectoryDetails; request.Credentials = new NetworkCredential(_currentConnection.Username, _currentConnection.Password); FtpWebResponse response = (FtpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); StreamReader readStream = new StreamReader(responseStream, System.Text.Encoding.UTF8); if (readStream != null) { Console.WriteLine(readStream.ReadToEnd()); } 

Solutions Collecting From Web of "Ausgabeprotokoll mit FtpWebRequest"

Sie können dies mithilfe der Netzwerkverfolgung tun. Um es einzurichten , erstellen Sie (oder ändern Sie, wenn Sie bereits eine haben) App.config Datei, so dass es so aussieht (wenn Sie die Datei bereits haben, müssen Sie die Einstellungen hinzufügen):

 < ?xml version="1.0" encoding="utf-8" ?>                   

Wenn Sie dies tun, erstellt Ihre Anwendung eine network.log Datei, die etwa so aussehen könnte:

 System.Net Information: 1 : [8892] FtpWebRequest#2383799::.ctor(ftp://test/) System.Net Information: 0 : [8892] FtpWebRequest#2383799::GetResponse(Method=LIST.) System.Net Information: 0 : [8892] Current OS installation type is 'Client'. System.Net Information: 0 : [8892] RAS supported: True System.Net Information: 0 : [8892] FtpControlStream#33675143 - Created connection from 192.168.1.1:51833 to 192.168.1.2:21. System.Net Information: 0 : [8892] Associating FtpWebRequest#2383799 with FtpControlStream#33675143 System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [220 This is the test FTP server. Authentication required.] System.Net Information: 0 : [8892] FtpControlStream#33675143 - Sending command [USER svick] System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [331 Password required for svick] System.Net Information: 0 : [8892] FtpControlStream#33675143 - Sending command [PASS ********] System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [230 Logged on] System.Net Information: 0 : [8892] FtpControlStream#33675143 - Sending command [OPTS utf8 on] System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [200 UTF8 mode enabled] System.Net Information: 0 : [8892] FtpControlStream#33675143 - Sending command [PWD] System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [257 "/" is current directory.] System.Net Information: 0 : [8892] FtpControlStream#33675143 - Sending command [TYPE I] System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [200 Type set to I] System.Net Information: 0 : [8892] FtpControlStream#33675143 - Sending command [PASV] System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [227 Entering Passive Mode (174,37,88,92,117,98)] System.Net Information: 0 : [8892] FtpControlStream#33675143 - Sending command [LIST] System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [150 Connection accepted] System.Net Information: 0 : [8892] FtpControlStream#33675143 - Received response [226 Transfer OK] System.Net Information: 0 : [8892] FtpWebRequest#2383799::(Releasing FTP connection#33675143.) 

Es ist ziemlich ausführlich, aber es enthält die Informationen, die Sie benötigen. Wenn Sie ändern möchten, wie die Protokolldatei geschrieben wird, können Sie einen eigenen TraceListener implementieren und diesen in der Konfigurationsdatei anstelle von TextWriterTraceListener .

Überprüfen Sie diese folgenden Links als Referenz. Wenn Sie IIS 7 haben, können Sie Ihre eigenen functionen implementieren.

Implementieren der Log-Methode der IftpLogProvider-Schnittstelle

 using System; using System.IO; using Microsoft.Web.FtpServer; using System.Diagnostics; using System.Diagnostics.Eventing; namespace FtpLogging { public class FtpLogDemo : BaseProvider, IFtpLogProvider { void IFtpLogProvider.Log(FtpLogEntry loggingParameters) { ....... 

Ref:
IIS FTP 7.5 Erweiterbarkeit (IFTPLogProvider und Protokollierung von FTP-Fehlern im Ereignisprotokoll)
Problem beim Schreiben in eine Datei (C #)