Опубликованный веб-сайт Asp.net: указанный модуль не найден. Исключение из HRESULT: 0x8007007E - PullRequest
2 голосов
/ 14 февраля 2010

У меня проблема при просмотре опубликованного сайта на локальном iis7 (на windows 7).

При просмотре сайта asp.net через VS2008 с F5 (dev iis) он работает нормально. При публикации и просмотре я получаю:

Ошибка сервера в приложении «/ MySite».

Указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)

Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.IO.FileNotFoundException: указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)

Трассировка стека также не дает подсказки о проблемных DLL. Я скопировал ту же опубликованную папку на другую машину (также с Windows 7 32bit и IIS 7), и она работает.

Поскольку это новая установка iis на мой компьютер, я проверил соответствующие выбранные элементы в «Включение / выключение компонентов Windows». Заметив проблему, я также запустил утилиту aspnet_regiis, но проблема остается.

Веб-сайт включает в себя несколько внешних библиотек (собственных и управляемых), и все они отображаются в папке опубликованного бина (которая идентична папке бина разработки)

Есть идеи?

Приветствия

Шей

Ответы [ 3 ]

3 голосов
/ 21 октября 2011

Как видно из этой темы: http://social.msdn.microsoft.com/forums/en-US/netfx64bit/thread/f609f52e-00f6-4ada-9d6e-7129b85d3d4d/,, как упомянуто в нижней части темы (со второго по последнее сообщение на данный момент), наша проблема заключалась в "мошенничестве" DLL, Microsoft.SqlServer. Replication.dll . Мы просто удалили dll и больше никаких ошибок. Кроме того, поскольку ни один проект в решении не ссылался на эту dll, я просто удалил ее из файла bin, и последующие сборки / публикации не добавляют dll. Я понятия не имею, как DLL попал в bin-файл в первую очередь. Шутка колледжа, может быть.

2 голосов
/ 20 февраля 2010

Предполагается, что родные dll могут быть найдены в PATH. Проблема заключалась в том, что они находились под пользовательским PATH, а не системным PATH, поэтому он работал нормально через VS, но не через IIS. Я добавил папку dll в системный PATH и все заработало ...

0 голосов
/ 22 апреля 2017

В большинстве случаев это длинный путь, но проверьте, что у вас есть хорошие библиотеки .NET Framework. Ничего не получалось от старого сайта Framework 2.0, поддерживаемого VS 2005, работающего на IIS 6, кроме простого текста в окне браузера с сообщением об ошибке. Скрипач и Firebug ничего не радовали. Начал проверять это, то и другое. Возможно, когда вы задались вопросом об использовании aspnet_iisreg, было обнаружено, что папка C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 содержит только несколько файлов. Не имеет особого смысла, приложения были 2.0, но есть некоторая межплатформенная связь и несколько библиотек, так что, возможно, некоторые из них работают как 4.0, или может быть, что IIS попытается использовать некоторые вещи из самой высокой версии .NET Framework имеется в наличии.

Сотрудник, более осведомленный о серверах, восстановил 4.0 Framework с помощью автономного установщика из здесь . Работает хорошо сейчас.

...