IIS 7.5 под Win7 Prof. 64bit Возвращение пустой страницы (без HTML вообще) - PullRequest
40 голосов
/ 17 сентября 2009

Я пытаюсь настроить свою среду разработки в Windows7, и у меня возникают проблемы с работой IIS. Я настроил все так, как я делал с IIS6, поэтому у меня есть основы. Моя проблема должна быть в том, что изменилось между IIS7 и IIS7.5 или в ОС.

Ни один из моих сайтов не вернет HTML. Не сайт по умолчанию и не недавно добавленный сайт.

Если я

telnet localhost 80

Тогда на пустом экране

GET / <enter>

Я ничего не получаю, ни один заголовок или элемент HTML.

Если я ввожу мусор вместо запроса GET, я получаю следующий HTML-код:

HTTP/1.1 400 Bad Request Content-Type:
text/html; charset=us-ascii Server:
Microsoft-HTTPAPI/2.0 Date: Thu, 17
Sep 2009 17:04:01 GMT Connection:
close Content-Length: 326

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML><HEAD><TITLE>Bad
 Request</TITLE> <META
 HTTP-EQUIV="Content-Type"
 Content="text/html;
 charset=us-ascii"></HEAD>
 <BODY><h2>Bad Request - Invalid
 Verb</h2> <hr><p>HTTP Error 400. The
 request verb is invalid.</p>
 </BODY></HTML>

Это доказывает, что IIS существует и обрабатывает запросы на порту 80.

В моем пути к журналам IIS у меня вообще нет файлов. Так что по какой-то причине журналы не пишутся.

Если я просматриваю Основные настройки на веб-сайте в диспетчере IIS, затем нажимаю кнопку «Проверить подключение», я получаю сообщение об ошибке, связанное с разрешениями:

Сервер настроен на использование сквозная аутентификация с встроенный аккаунт для доступа к указанный физический путь. Тем не менее, IIS Менеджер не может проверить, является ли встроенный аккаунт имеет доступ. Удостовериться что удостоверение пула приложений имеет Доступ для чтения к физическому пути. Если этот сервер присоединен к домену, и идентификатор пула приложений NetworkService или LocalSystem, проверьте что \ $ имеет Доступ для чтения к физическому пути. затем проверьте эти настройки еще раз.

Мой AppPool работает как ApplicationPoolIdentity, который, кажется, не является реальным пользователем, поэтому я не могу дать разрешения для файла ApplicationPoolIdentity. В качестве теста я дал IIS_IUSR, и всем остальным я мог найти полный доступ к пути.

Независимо от того, что я сделал до этого момента, я не видел, чтобы IIS говорил, что разрешения правильные. Тем не менее, я также никогда не видел ошибки, особенно ошибки разрешения (300 с).

Итак, есть идеи? Я попытался полностью удалить IIS, c: \ inetpub, а затем переустановить все. Я в основном делаю настройку по умолчанию здесь, так что это должно быть что-то простое.

Спасибо за ваше время ...

Ответы [ 2 ]

86 голосов
/ 17 сентября 2009

Я решил это. Для всех, у кого есть проблема, вот что я сделал.

Сначала повторили проблему: я устанавливал IIS, выбрав «ASP.NET» в меню «Установка и удаление компонентов Windows». При этом выбиралось все, что нужно IIS для запуска приложений .NET, но, что интересно, он не мог обслуживать статические страницы (.html, css, js и т. Д.). Моя тестовая страница была просто страницей hello world .html, поэтому она не была не обслуживается.

Чтобы исправить это: Чтобы включить отправку статического контента, вы должны специально выбрать «Статическое содержимое» в разделе «Общие функции HTTP» в том же списке «Установка и удаление компонентов Windows». Как только вы это сделаете, моя тестовая страница работала нормально.

В заключение: я не понимаю, как типичный .NET будет работать без статического контента (CSS, Images, Javascript), поэтому я не знаю, почему MS не будет включать статический контент по умолчанию при выборе ASP.NET , Возможно, мой рабочий процесс по установке IIS был неправильным.

Я уверен, что был способ отследить поток запросов, чтобы найти, что статические запросы контента блокировались, но я не знаю, как это сделать.

7 голосов
/ 09 ноября 2011

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

Итак ... вот еще один способ установить статический контент:

  1. Открыть Диспетчер серверов
    • Start Menu > type "server manager" in search field > click resulting link
  2. Разверните Роли узел
  3. Щелкните правой кнопкой мыши Узел веб-сервера (IIS) , чтобы просмотреть контекстное меню
  4. Выберите Добавить службы ролей из контекстного меню
  5. Когда откроется окно Add Role Services , перейдите к Web Server > Common HTTP Features
  6. Включить Статическое содержимое
  7. Нажмите Далее
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...