Я пытаюсь настроить демонстрационную машину, которая является EEEPC с версией Windows 7 Home Premium, все драйверы правильно загружены (не спрашивайте меня, почему это версия Home) с установленным IIS7.
Я развернул приложение для демонстрации на машине, которая является сайтом ASP.NET MVC, добавил веб-сайт через консоль, добавил пул приложений. Пул приложений работает как NetworkService, а гость проходит проверку подлинности как IUSR.
Я добавил права на изменение для NetworkService и права на чтение и выполнение для IUSR для папки веб-сайта и его содержимого.
Когда я попадаю в корень Интернета, скажем http://example.com/ Я получаю правильный HTML-код, отображаемый с веб-сайта (что означает, что приложение работает), но проблема в том, что все статическое содержимое возвращается пустым.
Я не уверен, почему это происходит. Нет страницы с ошибкой 404 или 500, просто пустой ответ при обращении к статическому контенту. Весь контент, созданный ASP.NET, работает нормально (хотя и немного странно, поскольку все CSS и изображения не загружаются)
Пожалуйста, помогите, консоль управления IIS7 меня очень сбивает с толку, и мне понадобится машина к завтрашнему дню.
Вы включали функцию статического контента?
В моем случае роль сервера была уже установлена, но статический обработчик обслуживал пустые страницы даже для тривиального тестового сайта с помощью всего лишь одного сопоставления обработчика.
Исправление заключалось в том, чтобы включить ограничение запроса «Вызывать обработчик, только если запрос сопоставлен с». Неважно, установил ли я его в «Файл» или «Файл или каталог»; пока флажок установлен, он работает:
Если это все еще не помогает, еще одна вещь, которая приводит к пустым страницам, - это попытка указать путь в разделе «Путь запроса», например public
или, может быть public/*
. Последнее просто неверно, а первое следует принять, но вместо этого будут пустые страницы. Решение состоит в том, чтобы обернуть отображение обработчика в <location path='public'>
раздел, указав *
для параметра «Путь запроса». Или в диспетчере IIS разверните сайт и сначала выберите свою папку, затем отредактируйте сопоставления обработчиков.
Как предположил @MattB, у меня не была включена функция «Статическое содержимое», но это только часть проблемы.
Я добавил функцию «Статическое содержимое», но проблема все еще сохраняется, поэтому я собираюсь удалить MvcHttpHandler по умолчанию из списка сопоставлений обработчиков, и каким-то образом проблема решается сама собой ... поэтому проблема заключалась в том, что MvcHttpHandler перехватывал запросы до того, как StaticFileHandler,
К вашему сведению, после установки «Статического содержимого» также убедитесь, что ...
В моем случае MvcHttpHandler был выше всего остального, я решил проблему, переместив его в конец списка, что является наиболее разумным местом, где он должен находиться, потому что обработчики файлов AXD, обработчики TRACE, обработчики OPTIONS и статический контент получают шанс при обработке запроса в первую очередь.
Надеюсь, это поможет кому-то найти в Google ту же проблему :-)