【发布时间】:2019-12-28 08:07:22
【问题描述】:
我尝试使用以下代码建立连接,但 AWS Lambda 函数抛出错误。
using System.Data.OleDb;
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=...");
con.Open();
错误:
System.Data.OleDb is not supported on this platform.: PlatformNotSupportedException
at System.Data.OleDb.OleDbConnection..ctor(String connectionString)
at AWSLambda1.Function.FunctionHandler(String input, ILambdaContext context) in C:\Users\TestUser\source\repos\AWSLambda1\AWSLambda1\Function.cs:line 35
at lambda_method(Closure , Stream , Stream , LambdaContextInternal )
有人可以帮忙吗?如果 Lambda 函数不支持 OleDb,那么您能告诉我连接 Microsoft Access 数据库的方法吗?
提前致谢。
【问题讨论】:
-
对于错误信息,这是不可能的。要么避免使用这种环境,要么使用其他数据库。
-
我不知道 AWS lambda 使用什么运行时,但您可以查看此方法(不使用 OLEDB)是否有效。但这取决于 lambda 运行时中的内容。 mrojas.ghost.io/msaccess-in-dotnetcore
-
docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html 表示 C# 运行时在 .NET Core 2.1 上。这没有OLEDB。现在我将阅读有关自定义运行时的内容,看看是否有办法做到这一点。
-
这是为了解释如何创建自定义运行时(您可以在其中安装 ODBC 驱动程序),但我无法理解它。在这个阶段,您应该解释您实际尝试做的事情,以及除了 AWS Lambda 函数之外还有哪些选项。你可以通过多种方式连接到 MS Access,但从 AWS Lambda docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html987654323@ 似乎很难
-
@Nick.McDermaid 是的,您说得对,我们无法从 AWS Lambda 连接,因为 AWS Lambda 使用 Linux 作为不包含 OleDB 或 ODBC 库的操作系统。所以我使用了 AWS Docker 容器。而不是 OleDB,我使用了 ODBC(System.Data.Odbc) 驱动程序。谢谢大家的建议。
标签: .net amazon-web-services ms-access aws-lambda oledb