Не удается заставить веб-сервер разместить приложение ASP.NET 4

Среда:
- Windows Server Standard 2008 SP2 (не R2) x64
- IIS7 с Media Services 4 для Microsoft SmoothStreaming
- MediaWiki и MySQL

SmoothStreaming работает отлично, MediaWiki работает отлично... Другие различные приложения Php работают отлично.

Недавно я разработал приложение с использованием Visual Studio 2010. Когда я отлаживаю приложение в Visual Studio, оно компилируется нормально, без ошибок. Когда я перемещаю скомпилированное приложение на веб-сервер, оно выдает ошибки, хотя пул приложений настроен для .Net 4.0. Я явно что-то упускаю и за весь день не нашел ответов.

Я попытался использовать инструмент aspnet_regiis.exe для регистрации ASP.NET 4 в IIS, но такого файла нет в %windir%\Microsoft.NET\Framework64\v4.0.30319 или %windir%\Microsoft.NET\Framework\v4.0.30319 .

Я не понимаю, сейчас я на машине с Windows 7 Pro x64, и у меня есть необходимые файлы aspnet_isapi.dll в обоих местах ... но не на моем компьютере с Windows Server 2008, хотя я использовал точно такой же файл . Установщик Net Framework 4...

Я также пытался удалить .Net Framework 4 и переустановить его, чтобы он автоматически регистрировался в IIS7, но обработчики asapi никогда не отображаются, а инструмент регистрации не существует в этих каталогах.

Что мне здесь не хватает?

Конкретная ошибка (хотя мое исследование конкретной ошибки не дало никаких указаний): «Обработчик« PageHandlerFactory-Integrated » имеет плохой модуль« ManagedPipelineHandler »в своем списке модулей». Единственная запись модулей, которая у меня есть в web.config, это <modules runAllManagedModulesForAllRequests="true"/>


person Lucretius    schedule 04.08.2011    source источник
comment
См.: stackoverflow.com/questions/532203/asp-net-in-iis7.   -  person Frazell Thomas    schedule 04.08.2011


Ответы (2)


Ваш вопрос немного неясен (из-за отсутствия подробностей в ошибках, которые вы получаете... например, вы получаете ошибку при переходе на страницу? Это 404? и т. д.), но я приму удар .

Первая мысль, которая приходит на ум: является ли веб-приложение, которое вы запускаете, приложением MVC? Если это так, возможно, ваш веб-сервер не настроен для обработки маршрутов.

Если это приложение MVC, и вы получаете 404, попробуйте добавить в свой web.config следующее:

<system.webServer>
   <modules runAllManagedModulesForAllRequests="true">
<system.webServer>

Это гарантирует, что ASP.Net будет использоваться для обработки всех запросов на веб-сервере для этого сайта, при условии, что вы указали System.Web.Routing в своем приложении. Если это решит проблему, возможно, стоит поискать более масштабируемое решение.

person davecoulter    schedule 04.08.2011
comment
У меня есть эта запись в system.webserver, и в настоящее время возвращается ошибка: обработчик «PageHandlerFactory-Integrated» имеет неверный модуль «ManagedPipelineHandler» в своем списке модулей. Ошибка 500.21. Я не использую никаких наворотов в Visual Studio 2010, ни MVC, ни AjaxToolKit, только плоский VS2010. Кроме того, после двойной проверки у меня нет ссылки на System.Web.Routing ... должен ли я? - person Lucretius; 04.08.2011
comment
Если вы используете маршрутизацию, вам нужно будет сослаться на нее. - person davecoulter; 04.08.2011
comment
Извините, я понятия не имею, что это значит. Что будет означать использование маршрутизации? - person Lucretius; 04.08.2011

Оказывается, я гигантский нуб.

Важно убедиться, что у вас установлена ​​правильная версия .NET Framework 4.0. Вам нужна версия "Клиент". Если вы установите «ServerCore», вы столкнетесь с той же проблемой, что и у меня, хотя интуитивно вы подумаете, что вам нужен «ServerCore» для запуска веб-сервера, но это не так.

person Lucretius    schedule 05.10.2011