C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 12 を表示中)
■3608 / )  FTP転送について
□投稿者/ うっちー (1回)-(2007/05/17(Thu) 10:26:32)

分類:[VB.NET (Windows)] 

現在、WindowsApplicationにてFTP転送を行う処理を作成しているのですが、デバッグを
しながらFTP転送を行うと正常に転送できるのですが、Releaseをしたexeで実際にテスト
するとFTP転送が出来ません。 OSは、WindowsXP でVBは、VB.NET 2003です。

以下ソースです。
Dim Writer1 As StreamWriter, Writer2 As StreamWriter
Dim results As String
Dim psi As New System.Diagnostics.ProcessStartInfo
Dim FTPcmd As String = Path.GetTempFileName
Dim myProcess As Process = Process.Start(psi)

Writer1 = New System.IO.StreamWriter(FTPcmd, False, System.Text.Encoding.Default)
Writer1.WriteLine("open 172.XX.X.XXX")
Writer1.WriteLine("ユーザーID")
Writer1.WriteLine("パスワード")
Writer1.WriteLine("bin")
Writer1.WriteLine("put D:\Test\TEST.txt")
Writer1.WriteLine("quit")
Writer1.Close()

psi.FileName = System.Environment.GetEnvironmentVariable("ComSpec")
psi.RedirectStandardInput = False
psi.RedirectStandardOutput = True
psi.UseShellExecute = False
psi.CreateNoWindow = True
psi.Arguments = "/c ftp -s:" & FTPcmd

results = myProcess.StandardOutput.ReadToEnd

Writer2 = New System.IO.StreamWriter("D:\Test\LOG.txt", True, System.Text.Encoding.Default)
Writer2.WriteLine(results)
Writer2.Close()

myProcess.WaitForExit()
myProcess.Close()
myProcess.Dispose()

File.Delete(FTPcmd)


以下は異常時のコマンドラインの出力ログです。

User (172.XX.X.XXX:(none)): open 172.XX.X.XXX


bin
put C:\TEST.txt
quit

正常時のログも記載しておきます。
ftp> Connected to 172.XX.X.XXX. open 172.XX.X.XXX
220 DPS FTPD Version 2.0 (PrintService Dir : /PS).
User (172.XX.X.XXX:(none)):
331 Password required for ユーザーID.

230 User ユーザーID logged in.
ftp> bin
200 Type set to I.
ftp> put C:\TEST.txt
200 PORT command successful.
150 Opening BINARY mode data connection for 'STOR'.
226 Transfer completed.
ftp: 8506 bytes sent in 0.00Seconds 8506000.00Kbytes/sec. ftp> quit
221 Goodbye.

異常時のログ内容から、すでに相手側に接続されUser名(login名)を要求しているが実際には
接続先のコマンドが当てはまってしまっているようなのですが、テストをしているディレクトリ
に問題があるのでしょうか?
皆様、申し訳ありませんがご助力をお願いします。
返信 編集キー/


管理者用

- Child Tree -