Session.Open throws an exception on error. Use the
Catch clause to capture it in VB.NET.
Thank you for the confirmation that it's not possible to get a connection error when setting the password.
Unfortunately our program log didn't capture the exception trace.
I think, maybe, the error was on scpsession.Open scpsessionOptions. I think it's possible to get a connection error from this operation? I think the correct way to capture this is with try/catch coding? I don't think the scpsession.open returns an error code in the same way as something like putfiles does?
You indeed cannot get an exception when setting the
.Password. Show us the exception callstack.
I'm using the following code and most of the time it works really well:
Set scpsession = New WinSCPnet.session
Set scpsessionOptions = New WinSCPnet.sessionOptions
Set scptransferOptions = New WinSCPnet.transferOptions
Log "After session create"
Select Case UCase(strDetailList(0))
.Protocol = Protocol_Ftp
'Log "FTP protocol selected"
.Protocol = Protocol_Sftp
'Log "SFTP protocol selected"
.HostName = strDetailList(1)
Log "Hostname set"
.UserName = strDetailList(2)
Log "Username set"
.Password = strDetailList(3)
'Log "Password set"
'.SessionLogPath = "c:\winscp.net"
'Log "Log path set"
.PortNumber = strDetailList(4)
Log "Port set"
Sometimes I get a connection error on the .password = strdetaillist(4) line. I don't understand why I would get a connection error because I don't think the connection is started until the line scpsession.Open scpsessionOptions?