我已经使用WinSCP 6.1.0 NuGet包开发了一个.NET Core 6.0.在本地,我可以从我自己的PC访问SFTP服务器,获得连接并能够上传文件.

当我将我的应用程序部署为AWS Lambda函数时,我在Session.Open()上收到以下错误:

WinSCP.SessionLocalException:在程序集WinSCPnet(/var/TASK)的位置找不到winscp.exe可执行文件,也未在安装路径中找到入门程序集Amazon.Lambda.RuntimeSupport(/var/time).您可以使用Session.ExecuablePath属性将路径显式设置为winscp.exe.

我知道,对于Azure函数,我可以这样设置ExecutablePath,它是有效的:

[FunctionName(FunctionName)]
public static void Run([TimerTrigger("%XXXSendSchedule%")] TimerInfo myTimer, ILogger log, ExecutionContext executionContext)
     using (Session winscpSession = new Session())
     {
          // See https://winscp.net/eng/docs/guide_microsoft_azure_function_sftp
          winscpSession.ExecutablePath = Path.Combine(executionContext.FunctionAppDirectory, "winscp.exe");

然而,在Lambda函数中,ILambdaContext似乎与Azure的FunctionAppDirectory没有任何相似之处:

public void MyFunctionHandler(ILambdaContext context)

我在哪里可以找到Lambda函数保持WinSCP.exe以便设置Session.ExecutablePath的路径?

亨里克

推荐答案

我不知道Amazon Lambda是否提供了可以像Azure功能那样存储winscp.exe的存储空间.

But it probably does not matter, as WinSCP is Windows binary and Amazon Lambda (contrary to Azure Functions) offers only Linux systems:
https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html

因此,恐怕您不能在Amazon Lambda中使用WinSCP.

Csharp相关问答推荐

在C#c/await中,延迟长度是否会影响控制返回调用者?

无法更改或使用C#(WinForms.NET)中的全局变量

无法使用ternal- .net修复可空警告

Dapper是否可以自动扩展类成员

IComponition.获取IReadOnlyCollection的返回默认属性值

我无法在Ubuntu下编译使用microsoft.extension.configurationbuilder jsonapi和mono mcs的c#应用程序

解析需要HttpClient和字符串的服务

C#DateTime.ToString在ubuntu和centos中返回不同的结果

Blazor服务器端的身份验证角色

JSON空引用异常仅在调试器中忽略try-Catch块,但在其他上下文中捕获得很好

集合表达式没有目标类型

未在数据流块之间传播完成

如何在Cosmos SDK中控制超时、重试和重试之间的延迟?

如何在C#中创建VS代码中的控制台应用程序时自动生成Main方法

Savagger使用Fastendpoint更改用户界面参数

在DoubleClick上交换DataGridViewImageColumn的图像和工具提示

如何强制新设置在Unity中工作?

从Base64转换为不同的字符串返回相同的结果

如何正确地在VB中初始化类?

为什么连接到Google OAuth2后,结果.Credential为空?