Этот вопрос относится к веб-сайту ASP.NET, первоначально разработанному в VS 2005, а теперь и в VS 2008.
Этот веб-сайт использует две неуправляемые внешние библиотеки DLL, которые не являются .NET, и у меня нет исходного кода для их компиляции, и я должен использовать их как есть.
Этот веб-сайт работает нормально из Visual Studio, правильно находя и обращаясь к этим внешним DLL. Однако, когда веб-сайт публикуется на веб-сервере (работающем под управлением IIS6 и ASP.NET 2.0), а не на компьютере разработчика, он не может найти эти внешние библиотеки DLL и получить к ним доступ, и я получаю следующую ошибку:
Unable to load DLL 'XYZ.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Внешние библиотеки DLL находятся в каталоге bin веб-сайта вместе с управляемыми библиотеками DLL, которые обертывают их, и всеми остальными библиотеками DLL для веб-сайта.
Поиск этой проблемы показывает, что многие другие люди, похоже, сталкиваются с такой же проблемой при доступе к внешним не .NET DLL с веб-сайтов ASP.NET, но я не нашел решения, которое работает.
Я пробовал следующее:
- Запуск DEPENDS для проверки зависимостей, чтобы установить, что первые три
находятся в каталоге System32 в пути, последний находится в .NET 2
основа.
- Я поместил две библиотеки DLL и их зависимости в
System32 и перезагрузил сервер, но сайт по-прежнему
не удалось загрузить эти внешние библиотеки DLL.
- Предоставил полные права ASPNET, IIS_WPG и IUSR (для этого сервера) на
каталог bin веб-сайта и перезагрузился, но веб-сайт все еще не мог
загрузить эти внешние библиотеки DLL.
- Добавлены внешние DLL в качестве существующих элементов в проекты и установлены
их свойство «Копировать в вывод» в «Копировать всегда» и веб-сайт
все еще не могу найти библиотеки DLL.
- Также установите для их свойства «Build Action» значение «Embedded resource» и
веб-сайт все еще не может найти библиотеки DLL.
Любая помощь с этой проблемой будет принята с благодарностью!