На выделенном сервере только что установлен IIS 7.5. Веб-приложение ASP.NET 4.0 скопировано в свою папку, новый веб-сайт создается на его собственном IP-адресе на посте 80, учетные записи IIS_IUSR и IUSR имеют права на чтение / выполнение в папке сайта, сайт назначен собственному интегрированному пулу приложений с 4.0 .NET. (Я пробовал классический пул с теми же результатами).
Проблема: когда я пытаюсь получить доступ к этому веб-сайту, браузер загружает только контент, сгенерированный ресурсами .NET, такими как страницы aspx, файлы .axd и т. Д. Статические изображения, статические файлы js, css и html находятся в источнике страницы, но IIS не не служу им. Инструменты разработки во всех браузерах жалуются, что все эти статические ресурсы были отправлены сервером с неправильным типом содержимого (простой текст вместо изображения, стилей и т. Д.). Что я делаю не так?
В IIS 7 / 7.5 появилась новая «функция» - службы ролей. Сообщение от rsbarro напомнило мне, что есть одна служба ролей, которая отвечает за статический контент. Это веб-сервер / общие функции HTTP / статический контент. Убедитесь, что значок типов MIME присутствует в диспетчере IIS, как предлагал rsbarro.
Если это не так, необходимо установить службу роли статического содержимого. Для этого выберите:
Судя по тому, что вы описываете, это ваша проблема.
В общем, если IIS7 не выполняет того, что сделал IIS6, первое, что нужно проверить, - это увидеть, установлена ли соответствующая служба роли. Надеюсь это поможет.
В IIS перейдите на свой веб-сайт и проверьте раздел Типы MIME (см. Изображение ниже). Убедитесь, что вы видите в этом списке записи для .js, .css, .html и т. Д. И что для них указан правильный тип MIME. IIS 7.5 будет обслуживать страницы только в том случае, если указан тип MIME. По умолчанию типы MIME для этих расширений настраиваются в applicationHost.config
файл, расположенный в C:\Windows\system32\inetsrv\config
папку (вам может потребоваться запустить блокнот от имени администратора, чтобы просмотреть файл). Просто найдите .js, и вы должны найти запись в <mimeMap>
в <staticContent>
элемент.
Эти настройки можно изменить в вашем web.config
файл. Если они есть, они появятся в следующем месте в web.config
:
<system.webServer>
<staticContent>
<remove fileExtension=".js" />
</staticContent>
</system.webServer>
Я бы определенно начал с проверки там. Если в разделе типов MIME все выглядит нормально, возможно, у вас есть модуль, который мешает запросам статических файлов (но, скорее всего, только если у вас есть <modules runAllManagedModulesForAllRequests="true" />
установить в вашем <system.webServer>
раздел). Если это так, я бы удалил все настройки модулей в вашем web.config
и посмотрите, сможете ли вы вызвать статические файлы, а затем прочитать их по одному, чтобы увидеть, какой модуль вызывает проблему. Если вы не можете понять это, я бы предложил опубликовать содержимое вашего web.config
(или, по крайней мере, system.web
и system.webServer
разделы) в вопросе.
У меня была такая же проблема, но мой пул приложений работал под учетной записью домена, и этот пользователь имел права на папку веб-сайта. На моем веб-сайте отображается aspx, но нет статического содержимого. Моя проблема была решена путем добавления группы IIS_IUSRS в локальную политику безопасности, которая называется «олицетворять клиента после аутентификации». В группе IIS_IUSRS была моя учетная запись домена. Я запускаю сервер iis 7.5 Windows 2008.