1

我正在使用最新版本的 azure functions 3.0.1 和 .net core 3.1。(下面的问题看起来很熟悉,但它并没有帮助我创建一个新的Azure 函数运行时异常,系统数据 sqlclient 异常的类型初始化程序,无法加载 DLL 'sni.dll'

我想在这里提一下,同样的代码适用于 azure function 2 和 .net core 2.2

另一个重要信息是我正在使用 NHibernate,执行 cfg.BuildSessionFactory(); 时出现此错误;命令。

运行时错误是:

启动操作“3756a542-87f8-43dd-a977-fbf87c7597d1”期间发生主机错误。[12/11/2019 5:17:42 AM] System.Data.SqlClient:“System.Data.SqlClient.TdsParser”的类型初始化程序引发了异常。System.Data.SqlClient:“System.Data.SqlClient.SNILoadHandle”的类型初始化程序引发异常。System.Data.SqlClient:无法加载 DLL“sni.dll”或其依赖项之一:找不到指定的模块。(0x8007007E)。

这是 .csproj 文件的一部分。

 <PropertyGroup>
   <TargetFramework>netcoreapp3.1</TargetFramework>
   <AzureFunctionsVersion>v3</AzureFunctionsVersion>
 </PropertyGroup>
 <ItemGroup>
   <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.0.0" />
   <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.0" />
   <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.1" />
 </ItemGroup>

此外,添加了以下包而不是 system.data.sqlclient 作为解决方案,但都给出了相同的错误。

<PackageReference Include="Microsoft.Data.SqlClient" Version="1.1.0" />

我已按照此链接https://dev.to/azure/develop-azure-functions-using-net-core-3-0-gcm中的所有内容来建立一个新项目。

4

3 回答 3

0

有同样的问题。阅读https://github.com/Azure/Azure-Functions/issues/1370后。

添加到 local.settings.json 这个

“FUNCTIONS_V2_COMPATIBILITY_MODE”:“真”

于 2020-02-10T13:08:07.003 回答
0

我将包从使用更改Microsoft.Data.SqlClient为使用System.Data.SqlClient,错误消失了。

注意:我已将其更改Microsoft.Data.SqlClientSystem.Data.SqlClient给出相同的错误。可能是包中有更新,或者最近的 Visual Studio 更新可能已修复它,我不确定。但是通过进行此更改,错误消失了。谢谢大家。

于 2020-02-12T12:24:46.390 回答
0

您是否尝试添加对 System.Data.SqlClient v4.4.0 的 nuget 引用。这在 缺少 sni.dll 的解决方案中进行了描述

于 2019-12-11T08:23:10.817 回答