【问题标题】:How to make WinSCP .NET assembly perform faster?如何使 WinSCP .NET 程序集执行得更快?
【发布时间】:2014-03-24 08:06:07
【问题描述】:

有没有人想出使用 WinSCP .NET 的速度性能?

我尝试http://winscp.net/eng/docs/library#csharp 中的 C# WinSCP 示例。我注意到它启动时,需要大约 30 秒才能到达第一条语句(WinSCP.SessionOptions 的初始化)。

有人知道发生了什么吗?如何加快速度?

我要做的就是编写一个 C++ 程序(无论是 C++/CLI 还是普通 C++)来自动化一些 SFTP 传输,这些传输可能每分钟、每 X 分钟、每小时甚至每天发生一次。速度是我关心的问题,尤其是每分钟发生一次传输。如果还有其他库可以表现更好,也请告诉我。谢谢。

【问题讨论】:

标签: c# c++ performance winscp winscp-net


【解决方案1】:

我想通了!对于那个很抱歉。是版本不匹配。 WinSCP.exe 的版本与 WinSCPnet.dll(程序集)不同。

我使用source code of the latest version of WinSCP。我在源代码中使用 dotnet\WinSCPnet.csproj。我将项目添加到 C# 示例中。编译程序集,然后编译 C# 示例。该示例立即运行,但随后我看到一条消息,指出编译的程序集在 dot net 程序集和 WinSCP.exe 之间存在版本不匹配。

一旦我确定(程序集和 EXE)都是相同的版本 (5.5.2),C# 示例就会成功运行(没有任何启动延迟)。

[EDIT] 实际上延迟发生在 5.5.1!

我使用 5.5.1 和 5.5.2 版本。我在 C# 示例中使用 5.5.1 版 EXE 和点网程序集。当程序启动时,会有延迟。我切换到版本 5.5.2。当程序启动时,它会立即运行。

希望此版本信息对需要使用 WinSCP dot net assmebly 的任何人有所帮助。

【讨论】:

  • 很高兴您解决了问题。虽然这并没有任何意义。 WinSCP .NET 程序集在调用 Session.Open 之前不会与 WinSCP 交互。因此,在此之前的任何延迟都不是由这两者之间的不兼容造成的。
  • 5.5.2 和 5.5.1 程序集之间只有一行差异。并且该行应该只影响 COM 接口:winscp.net/tracker/show_bug.cgi?id=1134 所以它看起来像是你的本地问题。
猜你喜欢
  • 2015-08-07
  • 2017-12-13
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
  • 1970-01-01
  • 2012-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多