Cette question concerne un site Web ASP.NET, initialement développé en VS 2005 et maintenant en VS 2008.
Ce site Web utilise deux DLL externes non gérées qui ne sont pas .NET. Je ne dispose pas du code source pour les compiler et je dois les utiliser telles quelles.
Ce site web fonctionne bien à partir de Visual Studio, en localisant et en accédant correctement à ces DLL externes. Cependant, lorsque le site Web est publié sur un serveur Web (exécutant IIS6 et ASP.NET 2.0) plutôt que sur le PC de développement, il ne peut pas localiser et accéder à ces DLL externes, et j'obtiens l'erreur suivante :
Unable to load DLL 'XYZ.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Les DLL externes sont situées dans le répertoire bin du site Web, avec les DLL gérées qui les enveloppent et toutes les autres DLL du site Web.
Une recherche sur ce problème révèle que de nombreuses autres personnes semblent avoir le même problème d'accès aux DLL externes non.NET à partir de sites Web ASP.NET, mais je n'ai pas trouvé de solution qui fonctionne.
J'ai essayé ce qui suit :
- Exécuter DEPENDS pour vérifier les dépendances afin d'établir que les trois premières sont dans le répertoire System32 dans le chemin, le dernier est dans le cadre .NET 2 Framework.
- J'ai mis les deux DLL et leurs dépendances dans System32 et redémarré le serveur, mais le site web ne pouvait toujours pas ne pouvait pas charger ces DLLs externes.
- J'ai donné les droits complets à ASPNET, IIS_WPG et IUSR (pour ce serveur) sur le répertoire bin du site web et j'ai reboosté le site. le répertoire bin du site web et redémarré, mais le site web ne pouvait toujours pas charger ces DLL externes.
- J'ai ajouté les DLL externes en tant qu'éléments existants aux projets et j'ai configuré leur propriété "Copy to Output" à "Copy Always", et le site web ne trouve toujours pas les DLLs.
- J'ai également défini leur propriété "Build Action" sur "Embedded resource". le site Web ne trouve toujours pas les DLL.
Toute aide pour résoudre ce problème serait grandement appréciée !