|
分類:[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名)を要求しているが実際には 接続先のコマンドが当てはまってしまっているようなのですが、テストをしているディレクトリ に問題があるのでしょうか? 皆様、申し訳ありませんがご助力をお願いします。
|