C# 4.0 无法为WinSCP会话类创建实例
我使用WinSCP在C程序中下载和上传文件。我的代码是这样的C# 4.0 无法为WinSCP会话类创建实例,c#-4.0,sftp,winscp,winscp-net,C# 4.0,Sftp,Winscp,Winscp Net,我使用WinSCP在C程序中下载和上传文件。我的代码是这样的 public Session OpenSftpSession () { SessionOptions sessionOptions = new SessionOptions (); sessionOptions.Protocol = WinSCP.Protocol.Sftp; sessionOptions.HostName = this.hostName_; se
public Session OpenSftpSession ()
{
SessionOptions sessionOptions = new SessionOptions ();
sessionOptions.Protocol = WinSCP.Protocol.Sftp;
sessionOptions.HostName = this.hostName_;
sessionOptions.UserName = this.userName_;
sessionOptions.Password = this.password_;
sessionOptions.SshHostKeyFingerprint = this.sshHostKeyFingerprint_;
Session session = null;
try
{
session = new Session ();
session.Open (sessionOptions);
}
catch (Exception ex)
{
return null;
}
return session;
}
当程序执行行时
session = new Session ();
它终止了。我甚至没有任何例外,它只是终止了
谢谢,
达珊 尝试加载您的
会话选项
,就像上的示例一样
例如,您的代码看起来像:
public Session OpenSftpSession ()
{
SessionOptions sessionOptions = new SessionOptions
{
Protocol = WinSCP.Protocol.Sftp;
HostName = this.hostName_;
UserName = this.userName_;
Password = this.password_;
SshHostKeyFingerprint = this.sshHostKeyFingerprint_;
}
Session session = null;
try
{
session = new Session ();
session.Open(sessionOptions);
}
catch (Exception ex)
{
return null;
}
return session;
}
我也有同样的问题,即使是在跟踪zmx的样本时。它只是简单地拒绝实例化会话对象。我最终做了以下几件事:
DLL和EXE的组合使其按预期工作。仅仅使用DLL是行不通的,因为它只是为EXE提供了一个包装器。此外,旧版本的WinSCP程序集的名称为WinSCP.dll,这与EXE的名称冲突;因此,在bin文件夹中同时使用DLL和EXE是不可行的。只需将WinScp.EXE和WinScp.DLL粘贴到应用程序文件夹中,就像我所做的那样:
D:\Orient Service\FinpayTransferservice-webservice\bin\x86\Debug
如果OP的问题与
winscp.exe
有关,则只有在调用Session.Open
后,问题才会出现。会话
构造函数未使用winscp.exe
。