C# netcore3.1 System.Data.SqlClient上的Azure Function 3.0.1:x27的类型初始值设定项;System.Data.SqlClient.TdsParser';抛出异常

C# netcore3.1 System.Data.SqlClient上的Azure Function 3.0.1:x27的类型初始值设定项;System.Data.SqlClient.TdsParser';抛出异常,c#,.net,.net-core,azure-functions,C#,.net,.net Core,Azure Functions,我使用的是azure functions 3.0.1和.net core 3.1的最新版本。(下面的问题看起来很熟悉,但它没有帮助我创建一个新的问题) 我想在这里提到的是,同样的代码在azure function 2和.net core 2.2上运行良好 另一个重要信息是我正在使用NHibernate,执行cfg.BuildSessionFactory()时会出现此错误;命令。 运行时错误为: 启动操作“3756a542-87f8-43dd-a977-fbf87c7597d1”期间发生主机错误。

我使用的是azure functions 3.0.1和.net core 3.1的最新版本。(下面的问题看起来很熟悉,但它没有帮助我创建一个新的问题)

我想在这里提到的是,同样的代码在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>


netcoreapp3.1

设置新项目。

您是否尝试向System.Data.SqlClient v4.4.0添加nuget引用。这在

中进行了描述。您是否尝试向System.Data.SqlClient v4.4.0添加nuget引用。这一点在

中也有描述。看完之后

将此添加到local.settings.json


“功能兼容模式”:“真”也有同样的问题。看完之后

将此添加到local.settings.json


“FUNCTIONS\u V2\u COMPATIBILITY\u MODE”:“true”

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


注意:我已将其更改为Microsoft.Data.SqlClient
作为
System.Data.SqlClient
给出了相同的错误。包中可能有更新,或者最近的Visual Studio更新可能已经修复了它,我不确定。但做出这一改变之后,错误就消失了。谢谢大家。

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


注意:我已将其更改为Microsoft.Data.SqlClient作为
System.Data.SqlClient
给出了相同的错误。包中可能有更新,或者最近的Visual Studio更新可能已经修复了它,我不确定。但做出这一改变之后,错误就消失了。谢谢大家。

是的,先生,我也尝试过这个解决方案,但没有效果。我又添加了两条语句,我使用的是导致错误的nhibernate 5.2.6,这段代码在azure 2/core 2.2上运行良好是的,先生,我也尝试过该解决方案,但没有效果。我又添加了两条语句,我使用的是导致错误的nhibernate 5.2.6,这段代码在azure 2/core 2.2上运行良好,感谢您花时间回复。我在你的答复中暂时搁置了这个问题,我又试了一次。该解决方案在我的演示应用程序中不起作用。我认为演示项目本身存在一些环境问题,因为我能够将实际项目转换为.NETCore3.1和Function3。如果我有时间的话,我会调查并公布调查结果。现在这对我来说已经不是问题了。谢谢。:)更新:我比较了两个项目之间的依赖关系,并根据工作项目进行了更新。我使用的是Microsoft.Data.SqlClient,我将它改为System.Data.SqlClient,它运行正常。但我可以保证我已经将其更改为microsoft.data.sqlclient,因为system.data.sqlclient不工作。无论如何,它终于开始工作了:)@Raj我正在使用system.data.sqlv-4.6.0nuget,它对我很有用。我很高兴你终于能够用我的解决方案来解决这个问题。谢谢你花时间回复。我在你的答复中暂时搁置了这个问题,我又试了一次。该解决方案在我的演示应用程序中不起作用。我认为演示项目本身存在一些环境问题,因为我能够将实际项目转换为.NETCore3.1和Function3。如果我有时间的话,我会调查并公布调查结果。现在这对我来说已经不是问题了。谢谢。:)更新:我比较了两个项目之间的依赖关系,并根据工作项目进行了更新。我使用的是Microsoft.Data.SqlClient,我将它改为System.Data.SqlClient,它运行正常。但我可以保证我已经将其更改为microsoft.data.sqlclient,因为system.data.sqlclient不工作。无论如何,它终于开始工作了:)@Raj我正在使用system.data.sqlv-4.6.0nuget,它对我很有用。我很高兴你终于能够用我的解决方案来解决这个问题。
<PackageReference Include="Microsoft.Data.SqlClient" Version="1.1.0" />