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