Post a reply

Before posting, please read how to report bug or request support effectively.

Bug reports without an attached log file are usually useless.

Options
Add an Attachment

If you do not want to add an Attachment to your Post, please leave the Fields blank.

(maximum 10 MB; please compress large files; only common media, archive, text and programming file formats are allowed)

Options

Topic review

martin

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.
sfroelich

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

Forgot to mention that this is v 5.1.3 of both the .exe and .dll
sfroelich

.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