Этот вопрос относится к веб-сайту 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-библиотекам с веб-сайтов ASP.NET, но я не нашел решение, которое работает.
Я пробовал следующее:
- Запуск DEPENDS для проверки зависимостей, чтобы установить, что первые три находятся в каталоге System32 в пути, последний находится в .NET 2 рамки.
- Я разместил две библиотеки DLL и их зависимости в System32 и перезагрузили сервер, но веб-сайт все еще не удалось загрузить эти внешние DLL.
- Предоставил полные права на ASPNET, IIS_WPG и IUSR (для этого сервера) до каталог корзины веб-сайтов и перезагрузка, но веб-сайт по-прежнему не может загрузите эти внешние DLL.
- Добавлены внешние библиотеки DLL как существующие элементы для проектов и установлены их свойство "Копировать в вывод" в "Копировать всегда" и веб-сайт все еще не могут найти DLL.
- Также установите для свойства "Свойство действия" значение "Встроенный ресурс" и веб-сайт по-прежнему не может найти библиотеки DLL.
Любая помощь с этой проблемой будет принята с благодарностью!