.NET Assembly can't create tmp logs where path contains !

Advertisement

sfroelich
Joined:
Posts:
2

.NET Assembly can't create tmp logs where path contains !

Receive the following error when using the .NET assembly in powershell code:

Error:
Exception calling "Open" with "1" argument(s): "Timeout waiting for WinSCP to respond - Log file C:\Users\!whatever\AppData\Local\Temp\3\wscp1ADC.0398CDFA.tmp was not created in time, please make sure WinSCP has write permissions to the folder"

Calling Code:
[Reflection.Assembly]::LoadFrom($WinSCPInstLocation) | Out-Null
$sessionOptions = New-Object WinSCP.SessionOptions
$sessionOptions.Protocol = [WinSCP.Protocol]::Sftp
$sessionOptions.HostName = $WinSCPHost
$sessionOptions.UserName = $WinSCPUser
$sessionOptions.Password = $WinSCPPwd
$sessionOptions.SshHostKey = $WinSCPHostKey
$session = New-Object WinSCP.Session
$session.Open($sessionOptions)

Notes:
-Because the log file isn't created, the session is never established.
-The '!whatever' user has full access to the mentioned directory
-Only happens when the log file path contains a '!'. If the TEMP and TMP environment variables don't contain a '!' the script executes correctly.
-The GUI seems to behave fine
-Changing the settings for the temp file location from within the GUI isn't picked up by the .NET Assembly

I am looking for a fix/workaround that doesn't entail changing the system environment variables/running the app with a different account. Is there a session option for the logs in the .NET assembly that can be set to get around this?

Thanks

Reply with quote

Advertisement

martin
Site Admin
martin avatar
Joined:
Posts:
40,551
Location:
Prague, Czechia

Re: RE: .NET Assembly can't create tmp logs where path contains

Thanks for your post.

This bug has been added to the tracker:
https://winscp.net/tracker/980

I'm going to release fix shortly.
Meanwhile, note that you can use Session.XmlLogPath to override default location of the log. Note that you need to ensure uniqueness of the log path across all instances of Session class.

Reply with quote

Advertisement

You can post new topics in this forum