Что именно нужно сделать с IIS 6 для обслуживания cshtml-страниц? - PullRequest
9 голосов
/ 05 мая 2011

Я обновил свой сайт до .Net4, но при запросе файла .cshtml (даже если это чистый html без бритвы) я получаю сообщение об ошибке соединения отказано. Чего не хватает?

Обновление: что-то изменилось, и теперь я получаю сообщение об ошибке «Этот тип страницы не обслуживается». Я думал, что .Net4 - это все, что требовалось.

Ответы [ 5 ]

8 голосов
/ 06 мая 2011

Оказывается, это просто вопрос наличия правильных файлов в каталоге bin и записи в веб-конфигурации. Вот список файлов:

  • Microsoft.Web.Infrastructure.dll
  • NuGet.Core.dll
  • System.Web.Helpers.dll
  • System.Web.Razor.dll
  • System.Web.WebPages.Administration.dll
  • System.Web.WebPages.Deployment.dll
  • System.Web.WebPages.dll
  • System.Web.WebPages.Razor.dll

и вот что мне нужно в web.config:

<compilation>
  <assemblies>
    <add assembly="System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
  <buildProviders>
    <add extension=".cshtml" type="System.Web.WebPages.Razor.RazorBuildProvider, System.Web.WebPages.Razor"/>
  </buildProviders>
</compilation>
3 голосов
/ 06 мая 2011

В дополнение к .NET 4.0 вам нужны правильные .dll для бритвы. Если у вас установлен Visual Studio 2010 с пакетом обновления 1 (SP1), вы можете щелкнуть правой кнопкой мыши веб-проект и выбрать Добавить развертываемые зависимости . Это скопирует необходимые DLL-файлы в папку bin при публикации вашего сайта. Если у вас не установлен пакет обновления 1 (SP1), вам необходимо вручную настроить .dll для публикации. В этом посте есть хорошее описание hw.

2 голосов
/ 23 мая 2013

Для меня получение IIS 8 для обслуживания страниц .cshtml было просто вопросом выбора правильных компонентов Windows для установки в Windows 8.

На панели управления найдите «функции». Затем нажмите «Включить или отключить функции Windows». Конечно, вы должны иметь «Интернет Информационные службы проверены (установлены). Я думаю, что вы также должны рассмотреть возможность проверки:

  • Информационные службы Интернета / Функции разработки приложений / .NET Extensibility 4.5
  • Информационные службы Интернета / Функции разработки приложений / ASP.NET 4.5
  • Информационные службы Интернета / Функции разработки приложений / Расширения ISAPI
  • Информационные службы Интернета / Функции разработки приложений / Фильтры ISAPI
  • Информационные службы Интернета / Функции разработки приложений / Включает серверную часть

Я мог бы включить дополнительную функцию. Я знаю, что пропустил некоторые полезные функции, такие как ведение журнала и трассировка, чтобы помочь отладке.

Если IIS по-прежнему не обслуживает страницы синтаксиса Razor (.cshtml), поищите дополнительные функции IIS для установки, поскольку я думаю, что ВСЕ, что мне нужно было сделать, - это выбрать правильные функции IIS.

Еще одна ошибка, которую я допустил, заключалась в настройке привязки для веб-сайта, и я подумал, что должен указать имя в поле «Хост». Но это заставляет IIS выходить в Интернет на этот веб-сайт, если он может его найти. Поэтому для простой настройки оставьте Host пустым. Название сайта обрабатывается в другом месте. И это где-то еще сервер доменных имен (DNS) на вашем регистраторе доменных имен.

Таким образом, этот ответ может помочь в дополнение к рассмотрению других ответов.

2 голосов
/ 05 мая 2011

Проверить это сообщение .

  1. Открыть IIS Manager
  2. Щелкните правой кнопкой мыши по своему сайту -> Управление веб-сайтом -> Расширенные настройки
  3. Запишите используемый пул приложений и закройте диалоговое окно «Настройки Advnaced»
  4. Теперь выберите «Пулы приложений» в левой панели навигации и дважды щелкните пул приложений, указанный на шаге 3, и измените версию .net framework на 4.0
1 голос
/ 05 мая 2011

Это должно быть исправлено путем применения правильного пула приложений, как указано Дэнни. Убедитесь, что вы не используете какие-либо сайты .Net 2 /3/3.5 в новом пуле приложений .Net 4.0, иначе вы получите ошибку.Я бы порекомендовал создать новый пул приложений .Net 4.0, а затем настроить новый сайт.

О, чтобы заставить IIS6 запускать .net 4, вам нужно следовать этому руководству .

Существует также вероятность того, что тип файла не известен IIS.В этом случае вам необходимо добавить его в сопоставления (это также позволяет вам создавать пользовательские расширения).

Выберите свой веб-сайт> Домашний каталог> Конфигурация (кнопка)>, а затем вставьте новое сопоставление.сопоставьте .cshtm с c: \ windows \ microsoft.net \ framework \ v4.0.30319 \ aspnet_isapi.dll с ограничением GET, HEAD, POST, DEBUG

Если вам нужно добавить сопоставление в основном при установке .net4 не работает должным образом, и вам нужно будет добавить все сопоставления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...