无法使用 C# AWS Lambda 函数连接到 SQL Server Express

Trouble connecting to SQL Server Express with a C# AWS Lambda function

尝试使用 System.Data.SqlClient 通过 AWS Lambda 连接到我的 SQL Server Express RDS 实例时出现以下错误:

"errorType": "PlatformNotSupportedException",
"errorMessage": "Operation is not supported on this platform.",
"stackTrace": [
"at System.Runtime.InteropServices.OSPlatform.get_Windows()",
"at System.Data.SqlClient.SNI.SNITCPHandle.d__22.MoveNext()"
]

我使用 Amazon.Lambda.Tools 构建部署包。 运行 函数和从本地连接到数据库工作正常,但在 AWS Lambda 上尝试 运行 它时失败。

这是我的 project.json:

{
"version": "1.0.0-*",
"description": "AWS lambda Console Application",
"authors": [ "" ],
"packOptions": {
    "tags": [],
    "projectUrl": "",
    "licenseUrl": ""
},
"buildOptions": {
    "emitEntryPoint": true
},
"dependencies": {
    "Microsoft.NETCore.App": {
    "type": "platform",
    "version": "1.0.0"
    },
    "Newtonsoft.Json": "9.0.1",
    "Amazon.Lambda.Core": "1.0.0*",
    "Amazon.Lambda.Serialization.Json": "1.0.1",
    "Amazon.Lambda.Tools": {
    "type": "build",
    "version": "1.0.0-preview1"
    },
    "Dapper": "1.50.2",
    "System.Data.SqlClient": "4.3.0"
},
"tools": {
    "Amazon.Lambda.Tools": "1.0.0-preview1"
}, 
"commands": {
    "AwsLambda": "run"
},
"frameworks": {
    "netcoreapp1.0": {
        "imports": "dnxcore50"
    }
}
}

你能不能试试改一下

"System.Data.SqlClient": "4.3.0"

"System.Data.SqlClient": "4.1.0"

并更改

"dependencies": {
    "Microsoft.NETCore.App": {
    "type": "platform",
    "version": "1.0.0"
    },

"dependencies": {
    "Microsoft.NETCore.App": {
    "type": "platform",
    "version": "1.0.1"
    },

有同样的问题,对我来说只是改变

"System.Data.SqlClient": "4.3.0"

"System.Data.SqlClient": "4.1.0"

对我有用。我不必更改 NetCore.App 依赖项。

明确添加对

的引用
"System.Data.SqlClient": "4.1.0",
"System.Runtime.InteropServices.RuntimeInformation": "4.0.0"

解决问题。