IIS 7.5 не завантажує статичні HTML-сторінки


10

Існує IIS 7.5 свіжо встановлений на спеціальному сервері. Веб-додаток ASP.NET 4.0 скопійовано у свою папку, новий веб-сайт створюється за власним IP-адресом на пошті 80, облікові записи IIS_IUSR та IUSR читають / виконують права в папці сайту, сайт присвоюється власному інтегрованому пулу додатків з 4.0 .NET (Я спробував Класичний пул з такими ж результатами).

Проблема: коли я намагаюся отримати доступ до цього веб-сайту, браузер завантажує лише вміст, створений ресурсами .NET, такими як aspx сторінки, .axd файли тощо. Статичні зображення, статичні js, css та html-файли є у джерелі сторінки, але IIS не робить Я їм не служу. Інструменти розробників у всіх браузерах скаржаться на те, що всі ці статичні ресурси були надіслані сервером з неправильним типом вмісту (звичайний текст замість зображення, стилів тощо). Що я роблю неправильно?


Що ви бачите у Fiddler (або Firebug)?
SLaks

Якщо це можливо, запустіть сторінку на сервері, особливо запустіть статичний вміст на сервері, і ви отримаєте повністю докладний звіт про помилки.
Арістос

Я не використовую Firebug. Але Chrome, наприклад, скаржиться на "Ресурс, інтерпретований як Зображення, але переданий з текстом / простою формою MIME" на файл jpg на сторінці. Те саме для всіх стилів, js та статичних html-сторінок. Також не працює динамічне завантаження скриптів та html.

@ Арістос: Я це зробив. Браузер сервера надає сторінку так само, як це роблять зовнішні браузери. Немає помилок, просто неповна сторінка.

Чи має право користувач веб-сервера читати ці файли?
Люк М

Відповіді:


12

IIS 7 / 7.5 має нову "особливість" - Рольові послуги. Допис від rsbarro нагадав мені, що є одна служба ролей, яка відповідає за статичний вміст. Це веб-сервер / загальні функції HTTP / статичний контент. Перевірте, чи присутній значок типу MIME в диспетчері IIS, як запропонував rsbarro.

Вам потрібно встановити службу ролей Static Content, якщо вона не є. Для цього виберіть:

  • Менеджер сервера
  • Ролі
  • Вузол веб-сервера (IIS) з лівої панелі
  • прокрутіть до вікна Служби ролей
  • подивіться, чи встановлено службову роль Static Content.

З того, що ви описуєте, це здається вашою проблемою.

Загалом, якщо IIS7 не робить щось, що зробив IIS6, перше, що потрібно перевірити, - це перевірити, чи встановлена ​​відповідна служба ролей. Сподіваюсь, це допомагає.


Роль статичного змісту, як я це пропустив? Дякую, ідеально виправили проблему.
Девід Томас Гарсія

6

У розділі IIS перейдіть на свій веб-сайт і перевірте розділ Типи MIME (див. Зображення нижче). Переконайтеся, що ви бачите записи в цьому списку для .js, .css, .html тощо, і що вони мають відповідний тип MIME. IIS 7.5 обслуговуватиме сторінки, лише якщо вказаний тип MIME. За замовчуванням типи MIME для цих розширень встановлюються у applicationHost.configфайлі, розташованому в C:\Windows\system32\inetsrv\configпапці (можливо, вам доведеться запустити блокнот як адміністратор, щоб переглянути файл). Просто знайдіть .js, і вам слід знайти запис <mimeMap>в <staticContent>елементі.

iis mime types

Ці параметри можна змінити у вашому 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розділів) у питанні.


2

У мене була така ж проблема, але мій пул додатків працював під обліковим записом домену, і цей користувач мав права на папку веб-сайту. На моєму веб-сайті відображено aspx, але статичного вмісту немає. Що вирішило мою проблему, було додати групу IIS_IUSRS до локальної політики безпеки під назвою "видавати себе за клієнта після аутентифікації" ". IIS_IUSRS група мала свій обліковий запис домену. Я працюю на сервері iis 7.5 Windows 2008.


Бажаю, щоб я міг відмовитись не раз. Я підійшов до цього питання, шукаючи, чому мої файли .css не обслуговуються IIS. Це було пов'язано з дозволами Windows на папках, де вони зберігалися.
2b77bee6-5445-4c77-b1eb-4df3e5
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.