IIS 7.5 под Win7 Prof. 64bit Возвращает пустую страницу (без HTML вообще)
Я пытаюсь настроить среду разработки в Windows7, и у меня проблемы с работой IIS. Я настроил все так, как я делал с IIS6, поэтому у меня есть основы. Моя проблема должна быть в том, что изменилось между IIS7 и IIS7.5 или в ОС.
Ни один из моих сайтов не вернет html. Не сайт по умолчанию, а не новый добавленный сайт.
Если I
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 Logs у меня нет файлов вообще. Поэтому по какой-либо причине журналы не записываются.
Если я просмотрю основные настройки на веб-сайте в диспетчере IIS, затем нажмите кнопку "Проверить соединение", я получаю сообщение об ошибке, связанной с правами:
Сервер настроен на использование сквозная аутентификация с помощью встроенная учетная запись для доступа к указанный физический путь. Однако IIS Менеджер не может проверить, встроенная учетная запись имеет доступ. Убедиться что идентификатор пула приложений Прочитайте доступ к физическому пути. Если этот сервер соединен с доменом и идентификатор пула приложений NetworkService или LocalSystem, проверьте что\$имеет Прочитайте доступ к физическому пути. затем снова проверьте эти настройки.
My AppPool работает как ApplicationPoolIdentity, который, похоже, не является реальным пользователем, поэтому я не могу предоставить разрешения для файлов ApplicationPoolIdentity. Я сделал в качестве теста команду IIS_IUSR, и все остальные могли найти полный доступ к пути.
Независимо от того, что я сделал до этого момента, я не видел, чтобы IIS утверждал, что права правильны. Тем не менее, я также никогда не видел ошибки, особенно это не ошибка разрешений (300s).
Итак, какие-то идеи? Я попытался полностью удалить IIS, c:\inetpub и переустановить все. В основном я использую настройку по умолчанию, поэтому это должно быть что-то простое.
Спасибо за ваше время...
Ответы
Ответ 1
Я решил это. Для всех, у кого есть проблема, вот что я сделал.
Сначала для репликации проблемы: я устанавливал IIS, выбрав "ASP.NET" в меню "Добавить/удалить Windows". Это выбрало все, что необходимо для IIS для запуска приложений .NET, но интересно, что он не может обслуживать статические страницы (.html, css, js и т.д.). Моя тестовая страница была просто мировой .html-страницей, поэтому именно это было 't служил.
Чтобы исправить это: чтобы включить службу статического контента, вы должны выбрать "Статический контент" в разделе "Общие HTTP-функции" в том же списке "Добавить/удалить список Windows". После этого моя тестовая страница работала нормально.
Вкратце: я не понимаю, как типичный .NET будет работать без статического контента (CSS, Images, Javascript), поэтому я не знаю, почему MS не будет включать статический контент по умолчанию при выборе ASP.NET, Возможно, мой рабочий процесс при установке IIS был неправильным.
Я уверен, что есть способ отслеживать поток запроса, чтобы найти, что запросы статического контента блокируются, но я не знаю, как это сделать.
Ответ 2
Решение Matt Cofer правильное: для просмотра статического контента вы должны установить функцию статического содержимого во время начальной установки. Тем не менее, я обнаружил, что функции добавления/удаления не работают для меня: он показал только подмножество функций и ничего общего с IIS.
Итак... вот еще один способ установить статический контент:
- Откройте Диспетчер серверов.
-
Start Menu > type "server manager" in search field > click resulting link
- Разверните Роли node
- Щелкните правой кнопкой мыши Веб-сервер (IIS) node, чтобы просмотреть контекстное меню
- Выберите Добавить службы ролей из контекстного меню
- Когда откроется окно "Добавить службы ролей", перейдите к
Web Server > Common HTTP Features
- Включить Статическое содержимое
- Нажмите Далее