【发布时间】:2021-11-21 18:59:05
【问题描述】:
首先我生成了一个简单的控制台应用程序,以查看 WinSCP 生成的是否正常工作 - 就是这种情况
现在我尝试使用 WinSCP 编写一个 Azure 函数 - 以相同的方式 - 相同的参数 - 我在 Session.Open (SessionLocalException) 上遇到异常:
[错误] 执行“WriteFile”(失败,Id=68e2ef30-c2fb-4f5e-8444-93634a2728bb,持续时间=256ms) 在 WinSCPnet 程序集 (D:\home\site\wwwroot\bin) 和条目程序集 Microsoft.Azure.WebJobs.Script.WebHost (D:\Program Files (x86)\ SiteExtensions\Functions\3.2.0\32bit),也不在安装路径中。您可以使用 Session.ExecutablePath 属性显式设置 winscp.exe 的路径。
winscp.exe 文件不在D:\home\site\wwwroot\bin 中,而是在D:\home\site\wwwroot 中。由于我通过 Visual Studio 发布它是只读的,所以我不能只将文件复制到正确的位置。
如何更新我的 zip 部署以使文件位于正确的位置?
我的代码:
public static async Task<IActionResult> WriteFile(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req)
{
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Sftp,
HostName = "xxx",
UserName = "xxx",
Password = "xxx",
SshHostKeyFingerprint = "xxx",
};
using (Session session = new Session())
{
try
{
session.Open(sessionOptions);
}
catch (SessionLocalException)
{
content = JsonConvert.SerializeObject(new { success = false, exception = "SessionLocalException", condition = "Error communicating with winscp.com. See the exception documentation for details." });
return (ActionResult)new OkObjectResult($"{content}");
}
有关详细信息的异常文档没有多大帮助 有人可以帮帮我吗?
我第一次直接在 Azure 门户中编写了一些函数来处理 SFTP 相关活动 - 我是 Azure Functions 的新手,但我找到了处理它的方法
现在我尝试在 Visual Studio 2019 中编写这些函数以发布到 Azure 函数
问题是,在 C# 代码中,当我尝试打开会话时它失败了。
【问题讨论】:
标签: c# azure-functions sftp winscp winscp-net