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.
3 Réponses :
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
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
J'ai eu le même problème. après avoir lu https://github.com/Azure/Azure-Functions/issues/1370 < / a>.
ajoutez au fichier local.settings.json ceci
"FUNCTIONS_V2_COMPATIBILITY_MODE": "true"
Merci Ram d'avoir pris le temps de répondre. J'avais mis cela en attente avec votre réponse, j'ai essayé à nouveau. Cette solution ne fonctionnait pas dans mon application de démonstration. Je pense que le projet de démonstration lui-même a un problème d'environnement car j'ai pu convertir le projet actuel en .net core 3.1 et en fonction 3. Si j'ai le temps, je vais l'examiner et publier les résultats. Pour l'instant, ce n'est plus un problème pour moi. Merci. :)
Mise à jour: J'ai comparé les dépendances entre les deux projets et mis à jour en fonction du projet de travail. J'utilisais Microsoft.Data.SqlClient, je l'ai changé en System.Data.SqlClient et cela a fonctionné. Mais je peux garantir que je l'avais changé en microsoft.data.sqlclient car system.data.sqlclient ne fonctionnait pas. Quoi qu'il en soit, il a finalement fonctionné :)
@Raj J'utilise system.data.sql v- 4.6.0 nuget et cela fonctionne pour moi. Je suis heureux que vous puissiez enfin faire fonctionner cette solution avec ma solution.
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.