1
votes

Azure Function 3.0.1 sur netcore3.1 System.Data.SqlClient: l'initialiseur de type pour 'System.Data.SqlClient.TdsParser' a levé une exception

J'utilise la dernière version des fonctions azure 3.0.1 et .net core 3.1. (La question suivante semble familière, mais elle ne m'a pas aidé à en créer une nouvelle Exception d'exécution des fonctions Azure, l'initialiseur de type pour les données système sqlclient excetion, Impossible de charger la DLL 'sni.dll' )

Je tiens à mentionner ici que ce même code fonctionne correctement avec azure function 2 et .net core 2.2

Une autre information importante est que j'utilise NHibernate et cette erreur survient lors de l'exécution de cfg.BuildSessionFactory (); .

L'erreur d'exécution est:

Une erreur d'hôte s'est produite lors de l'opération de démarrage '3756a542-87f8-43dd-a977-fbf87c7597d1'. [12/11/2019 5:17:42 AM] System.Data.SqlClient: l'initialiseur de type pour 'System.Data.SqlClient.TdsParser' a levé une exception. System.Data.SqlClient: l'initialiseur de type pour «System.Data.SqlClient.SNILoadHandle» a levé une exception. System.Data.SqlClient: impossible de charger la DLL «sni.dll» ou l'une de ses dépendances: le module spécifié est introuvable. (0x8007007E).

Voici la partie du fichier .csproj.

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

De plus, le package suivant a été ajouté à la place du système. data.sqlclient comme solution mais les deux donnent la même erreur.

 <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>

J'ai tout suivi de ce lien https://dev.to/azure/develop-azure-functions-using-net-core-3-0- gcm pour configurer un nouveau projet.


0 commentaires

3 Réponses :


0
votes

Avez-vous essayé d'ajouter une référence nuget à System.Data.SqlClient v4.4.0. Ceci est décrit dans Résolution de sni.dll manquant


1 commentaires

Oui, monsieur, j'ai également essayé cette solution, mais en vain. J'ai ajouté deux autres déclarations, j'utilise nhibernate 5.2.6 qui provoque l'erreur et ce code fonctionne bien avec azure 2 / core 2.2




0
votes

J'ai changé le package de Microsoft.Data.SqlClient pour utiliser System.Data.SqlClient et l'erreur a disparu.

Remarque: je l'avais changé en Microsoft.Data.SqlClient car System.Data.SqlClient donnait la même erreur. Peut-être qu'il y avait une mise à jour dans le package ou des mises à jour récentes de Visual Studio l'ont peut-être corrigé, je ne suis pas sûr. Mais l'erreur a disparu en faisant ce changement. Merci à tous.


0 commentaires