Nicht verwaltete DLLs können auf dem ASP.NET-Server nicht geladen werden

Diese Frage bezieht sich auf eine ASP.NET-Website, die ursprünglich in VS 2005 und jetzt in VS 2008 entwickelt wurde.

Diese Website verwendet zwei nicht verwaltete externe DLLs, bei denen es sich nicht um .NET handelt, und ich habe nicht den Quellcode, um sie zu kompilieren und sie unverändert zu verwenden.

Diese Website funktioniert einwandfrei in Visual Studio und sucht nach diesen externen DLLs und greift korrekt darauf zu. Wenn die Website jedoch auf einem Webserver (unter IIS6 und ASP.NET 2.0) und nicht auf dem Entwicklungs-PC veröffentlicht wird, kann sie diese externen DLLs nicht finden und darauf zugreifen, und es wird der folgende Fehler angezeigt:

Unable to load DLL 'XYZ.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

Die externen DLLs befinden sich im bin-Verzeichnis der Website, zusammen mit den verwalteten DLLs, die sie umschließen, und allen anderen DLLs für die Website.

Das Durchsuchen dieses Problems zeigt, dass viele andere Benutzer anscheinend dasselbe Problem beim Zugriff auf externe Nicht-.NET-DLLs von ASP.NET-Websites haben, aber ich habe keine Lösung gefunden, die funktioniert.

Ich habe Folgendes versucht:

Führen Sie DEPENDS aus, um die Abhängigkeiten zu überprüfen und festzustellen, ob sich die ersten drei im System32-Verzeichnis im Pfad befinden, die letzte im .NET 2-Framework.Ich habe die beiden DLLs und ihre Abhängigkeiten in System32 abgelegt und den Server neu gestartet, aber die Website konnte diese externen DLLs immer noch nicht laden.Haben Sie die vollen Rechte für ASPNET, IIS_WPG und IUSR (für diesen Server) im Website-Bin-Verzeichnis und wurden neu gestartet, aber die Website konnte diese externen DLLs immer noch nicht laden.Fügte die externen DLLs als vorhandene Elemente zu den Projekten hinzu und stellte deren Eigenschaft "In Ausgabe kopieren" auf "Immer kopieren" ein, und die Website kann die DLLs immer noch nicht finden. Legen Sie außerdem die Eigenschaft "Build Action" auf "Embedded resource" fest, und die DLLs werden von der Website immer noch nicht gefunden.

Jede Hilfe bei diesem Problem wäre sehr dankbar!

Antworten auf die Frage(22)

Ihre Antwort auf die Frage