Hat Npgsql 3.1.9 verwendet
START RequestId: 147aefc2-c10f-11e6-b24b-6daefcf72be1 Version: $LATEST
Exception System.TypeInitializationException: The type initializer for 'Npgsql.TypeHandlerRegistry' threw an exception. ---> System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.Assembly.GetTypes()
at Npgsql.TypeHandlerRegistry..cctor()
--- End of inner exception stack trace ---
at Npgsql.TypeHandlerRegistry.Setup(NpgsqlConnector connector, NpgsqlTimeout timeout)
at Npgsql.NpgsqlConnector.Open(NpgsqlTimeout timeout)
at Npgsql.ConnectorPool.Allocate(NpgsqlConnection conn, NpgsqlTimeout timeout)
at Npgsql.NpgsqlConnection.OpenInternal()
at Seaside.Api.HelloWorld.Functions.<GetAsync>d__0.MoveNext()
END RequestId: 147aefc2-c10f-11e6-b24b-6daefcf72be1
REPORT RequestId: 147aefc2-c10f-11e6-b24b-6daefcf72be1 Duration: 96.22 ms Billed Duration: 100 ms Memory Size: 256 MB Max Memory Used: 31 MB
Das Auflösen nativer Abhängigkeiten ist etwas, an dem wir arbeiten, um besser zu werden. Als Workaround können Sie bis dahin in der Datei aws-lambda-tools-defaults.json die Eigenschaft "additional-files" hinzufügen, die die native Auflösung erzwingt. Nachdem ich dies getan hatte, konnte ich eine Verbindung zu einer Postgresql-Datenbank herstellen.
...
"function-handler": "NpgsqlTest::NpgsqlTest.Function::FunctionHandler",
"additional-files": [
"runtimes/linux/lib/netstandard1.3/System.Net.NetworkInformation.dll"
]
}
Schöne Norm 👍
Ich habe das gleiche Problem, aber mit .Net Core auf einem Mac. Gibt es ein Äquivalent zu "zusätzlichen Dateien", wenn Sie Visual Studio oder aws-lambda-tools nicht verwenden?
Wenn Sie das Amazon.Lambda.Tools NuGet-Paket zum Bereitstellen verwenden, wird beim Ausführen der dotnet Lambda-Bereitstellungsfunktion die Datei aws-lambda-tools- defaults.json gelesen, genau wie Visual Studio, einschließlich des Abschnitts Additional-Files .
Wir wollten sicherstellen, dass alle Bereitstellungsfeatures in Visual Studio über die dotnet-CLI verfügbar sind, um Benutzer auf Macs zu unterstützen.
Diese Antwort hat mir viel zusätzlichen Schmerz erspart ... es ist jedoch erwähnenswert, dass alle Einstellungen in aws-lambda-tools- defaults.json werden ignoriert, daher ist es erforderlich, diese Datei manuell in das Stammverzeichnis des Paketverzeichnisses zu kopieren.
Ich empfehle anstelle von dotnet publish
entweder dotnet lambda package
. Dadurch wird das gleiche Paket wie in Visual Studio ausgeführt, jedoch über die dotnet-CLI. Sie können die vollständige Liste der Befehle anzeigen, die wir der dotnet-CLI über das NuGet-Paket Amazon.Lambda.Tools
hinzugefügt haben, indem Sie dotnet lambda help
ausführen
Hilfreichster Kommentar
Das Auflösen nativer Abhängigkeiten ist etwas, an dem wir arbeiten, um besser zu werden. Als Workaround können Sie bis dahin in der Datei aws-lambda-tools-defaults.json die Eigenschaft "additional-files" hinzufügen, die die native Auflösung erzwingt. Nachdem ich dies getan hatte, konnte ich eine Verbindung zu einer Postgresql-Datenbank herstellen.