Aws-lambda-dotnet: Pengecualian saat mencoba menggunakan Npgsql untuk terhubung ke instance RDS

Dibuat pada 13 Des 2016  ·  6Komentar  ·  Sumber: aws/aws-lambda-dotnet

Sedang menggunakan Npgsql 3.1.9

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

guidance

Komentar yang paling membantu

Menyelesaikan dependensi asli adalah sesuatu yang sedang kami kerjakan untuk menjadi lebih baik. Sebagai solusi hingga saat itu, Anda dapat menambahkan di file aws-lambda-tools-defaults.json properti "file tambahan" yang akan memaksa resolusi asli. Setelah saya melakukan ini, saya dapat terhubung ke database postgresql.

  ...
  "function-handler": "NpgsqlTest::NpgsqlTest.Function::FunctionHandler",

  "additional-files": [
    "runtimes/linux/lib/netstandard1.3/System.Net.NetworkInformation.dll"
  ]
}

Semua 6 komentar

Menyelesaikan dependensi asli adalah sesuatu yang sedang kami kerjakan untuk menjadi lebih baik. Sebagai solusi hingga saat itu, Anda dapat menambahkan di file aws-lambda-tools-defaults.json properti "file tambahan" yang akan memaksa resolusi asli. Setelah saya melakukan ini, saya dapat terhubung ke database postgresql.

  ...
  "function-handler": "NpgsqlTest::NpgsqlTest.Function::FunctionHandler",

  "additional-files": [
    "runtimes/linux/lib/netstandard1.3/System.Net.NetworkInformation.dll"
  ]
}

Norma yang bagus 👍

Saya mengalami masalah yang sama, tetapi dengan .Net core di Mac. Apakah ada yang setara dengan "file tambahan" saat tidak menggunakan visual studio atau aws-lambda-tools?

Jika Anda menggunakan paket Amazon.Lambda.Tools NuGet untuk menyebarkan, maka ketika Anda menjalankan fungsi penerapan aws-lambda-tools-defaults.json seperti halnya Visual Studio menyertakan bagian file tambahan .

Kami ingin memastikan bahwa semua fitur penerapan di Visual Studio tersedia melalui dotnet CLI untuk mendukung pengguna di Mac.

Jawaban ini menyelamatkan saya lebih banyak rasa sakit ... namun perlu dicatat bahwa jika Anda tidak menggunakan VS untuk membangun paket/unggahan Anda tetapi sebagai gantinya alat coreclr biasa (yaitu "dotnet publish"), pengaturan apa pun di aws-lambda-tools- defaults.json diabaikan, jadi menyalin file ini secara manual ke root direktori paket diperlukan.

Saya sarankan daripada menggunakan dotnet publish gunakan salah satu dari dotnet lambda package . Ini akan melakukan pengemasan yang sama yang kita lakukan di Visual Studio tetapi dari dotnet CLI. Anda dapat melihat daftar lengkap perintah yang telah kami tambahkan ke dotnet CLI melalui paket NuGet Amazon.Lambda.Tools dengan mengeksekusi dotnet lambda help

Apakah halaman ini membantu?
0 / 5 - 0 peringkat