timeout waiting for external console to complete the command
Running winscp.com with a script file that FTP puts a few hundred files works fine when I type it in a cmd.exe window, but when I try to use it as a process object in my .Net 3.5 program, I get a pop-up dialog with the above message after about thirty seconds. The process continues to run, but no more files get transferred.
Is there a way to get around this timeout?
I'm running WinSCP version 4.1.7 on windows XP, visual studio 2008.
Here's my script file:
The script file works fine from a command prompt window.
My program code:
The process continues to run: my log object (above) reports "FTP running..." indefinitely.
thanks
Is there a way to get around this timeout?
I'm running WinSCP version 4.1.7 on windows XP, visual studio 2008.
Here's my script file:
open creynolds@winsrvops option confirm off option batch on cd attachment lcd W:\ibm\WebSphere\AppServer\profiles\ecstg\installedApps\WC_ecstg_cell\WC_ecstg.ear\Stores.war\APHConsumerDirect lcd attachment put *.* lcd .. lcd upload cd .. cd upload put *.* lcd .. lcd images\catalog cd .. cd images\catalog put *.* bye
The script file works fine from a command prompt window.
My program code:
...
Sub FTPfiles(ByVal localdir As String)
' Purpose: FTP the image files, etc from ecstage to web server
' Created: conrad dec 2008
' Modified:
Const THISSUB As String = "FTPfiles"
Dim proc As Process
Try
BuildScriptFile()
StartProc(proc, My.Settings.FTPFilePath & "\winscp.com", _
"/script=""" & My.Settings.FTPFilePath & "\WSCPromotionBatch.txt""", 10)
Do
If Not proc.HasExited Then
proc.Refresh()
If proc.Responding Then
log.Comment("FTP running...", THISSUB)
Else
log.Comment("FTP not responding.", THISSUB)
End If
End If
Loop While Not proc.WaitForExit(10 * 1000)
log.Comment("FTP process exit code:" & proc.ExitCode, THISSUB)
proc.Close()
Catch ex As Exception
Throw New Exception("Error in " & THISSUB, ex)
Finally
proc = Nothing
End Try
End Sub
Sub StartProc(ByRef proc As Process, ByVal cmd As String, ByVal parms As String, ByVal waitseconds As Integer)
' Purpose: Start up the specified command as a process
' Returns: A Process variable for your process.
' Created: conrad dec 2008
' Modified:
Const THISSUB As String = "StartProc"
Dim procStartInfo As ProcessStartInfo
Try
proc = New Process()
procStartInfo = New ProcessStartInfo(cmd, parms)
procStartInfo.UseShellExecute = False
procStartInfo.RedirectStandardError = True
procStartInfo.RedirectStandardOutput = True
proc.StartInfo = procStartInfo
proc.Start()
proc.WaitForExit(waitseconds * 1000)
Catch ex As Exception
Throw New Exception("Error in " & THISSUB, ex)
Finally
procStartInfo = Nothing
End Try
End Subthanks