Скрипт не обслуживается статическим обработчиком файлов в IIS7.5

116

Я только что попытался развернуть мое первое веб-приложение в IIS на своем ноутбуке Windows 7 Home Premium. После создания приложения мне пришлось перейти в Classic App Pool, а затем установить этот пул для фреймворка 4.0. Теперь я получаю следующую ошибку:

Ошибка HTTP 404.17 - Не найдено. Запрошенный контент представляется скриптом и не будет обслуживаться статическим обработчиком файлов.

Запрошенный URL-адрес: http://localhost: 80/pvmms/default.aspx

Боюсь, что обширный Гуглинг не дал мне ничего четкого или определенного для меня отношения, и, как обычно, я обратился к экспертам.

EDIT: Я подозреваю, что это связано с отсутствием сопоставлений обработчика framework 4.0 для файлов.aspx. Тем не менее, aspnet_regiis даже дает моему администратору палец и говорит, что мне нужны права администратора для его запуска.

EDIT # 2: Я зарегистрировал все фреймворки (2 и 4, 32 и 64), и теперь все работает. Я нашел это, вручную добавив карту сценария для .aspx в aspnet_isapi и voila. Я не понимаю, почему установка фреймворка не делает этого, если только моя память не удалась, и я включил только IIS после установки VS.

Теги:
iis
iis-7.5

23 ответа

119
Лучший ответ

Возможно, слишком поздно, но чаще всего вам нужно запускать

aspnet_regiis.exe -i  

после установки asp.net. Возможно, я сделаю это в любом случае.

  • 4
    От msdn.microsoft.com/en-us/library/k6h9cz8h.aspx : aspnet_regiis -i
  • 17
    Существует два средства регистрации IIS, которые поставляются с .NET Framework; один для стандартных систем и один для 64-битных систем. Инструмент для 64-битных систем находится в каталоге Framework64 каталога Microsoft.NET внутри папки Windows; например C: \ WINDOWS \ Microsoft.NET \ Framework64 \ v2.0.50727 будет содержать средство регистрации IIS.
Показать ещё 8 комментариев
59

В дополнение к выше, если вам нужна поддержка WCF, вам может потребоваться выполнить следующее:

c:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe -i

Замените v3.0 на любую текущую версию фреймворка.

  • 1
    Примечание для других, я думаю, что в веб-приложениях, использующих пул приложений 4.0, вам нужно будет снова запустить aspnet_regiis
  • 1
    Для .Net 4 его в родительском каталоге. Например: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ ServiceModelReg.exe -i
43

Если вы используете iis 7.5.

Просто зайдите в диспетчер IIS, откройте свойства своего веб-сайта.

Вы увидите раздел "Сопоставления обработчиков", просто перейдите в этот раздел и найдите "staticFile".

Скорее всего, это последний файл в списке.

Затем щелкните правой кнопкой мыши на нем и выберите "Восстановить родителя".

Я потратил столько времени, пока я столкнулся с этим в первый раз, так как это решит вашу проблему.

  • 2
    Как ответил Ади: эта коммандос делает все это: c: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation \ ServiceModelReg.exe -i
  • 0
    Спасибо @Kumar за совет! IIS> Сайты> acme.com> Сопоставления обработчиков> Вернуться к родителю. В моем случае я сделал это для всего домена, а не только для «staticFile». Это сработало для меня и было проще / предпочтительнее, чем запуск исполняемого файла (aspnet_regiis.exe). Почему это предложение не кипит дальше? знак равно
Показать ещё 1 комментарий
39

Я столкнулся с этой ошибкой из IIS 8.5 при попытке доступа к службе WCF, которую я написал. Оказывается, сервер не включил функции активации HTTP WCF. Проверял ящики и щелкал через мастер, iisreset, начал работать.

Изображение 6019

  • 1
    Это работало для меня с IIS 8.5 и Windows 8.1. Мне нужно было включить ASHX для получения ошибки, описанной в вопросе (HTTP 404.17)
  • 1
    Это работает для меня тоже в IIS 8.5
Показать ещё 4 комментария
21

У меня была эта проблема с Windows Server 2012 с ASP.NET 4.5, вы не можете использовать aspnet_regiis.exe, и просто нужно установить ASP.NET 4.5 с помощью мастера добавления ролей и возможностей:

Изображение 6020

Вы можете найти пункт меню "Добавить роли и функции" в меню "Управление" в правом углу Диспетчера серверов

  • 1
    Пункт меню «Добавить роли и функции» вы можете найти в меню «Управление» в правом углу диспетчера сервера.
14

Я знаю, что это старый вопрос, но у меня только что было это с приложением 3.5 на моей восстановленной машине под управлением Windows 8, и я все еще получал это после aspnet_regiis -iru, и оказалось, что ASP.NET 3.5 wasn ' t отмечены в пределах возможностей разработки приложений (недостаточно репутации для публикации изображения).

  • 2
    @bicbmx для изображения, вы можете поделиться ссылкой после загрузки, где-то, например, на imgur.com
  • 1
    @superjos хороший момент! imgur.com/Xs8RMM5
14

Изображение 6021

должен проверить эту опцию, предположим,

  • 1
    Это просто устанавливает, может ли статический контент обслуживаться или нет. Моя проблема в том, что запросы сценариев сопоставляются со статическим содержимым. Если я отключаю его, IIS даже не пытается сервер страницы, просто дает мне пустое место.
10

Я решил эту проблему, включив WCF Services

Programs and Features > NET Framework 4.5 Services > WCF Services> HTTP Activation node

Но вы должны признать, что это ENIRE IIS setup configure/guess/trial и см./попробуйте это/попробуйте, что тратит 4 или 5 наших дней, пытаясь найти решение вокруг подхода. COMPLETE AND UTTER JOKE.

ЖЕСТКО, "ИИС" - САМЫЙ БОЛЬШОЙ ДУХОВНЫЙ ТРЕЙК, КОГДА-ЛИБО ИГРАТЬ НА ЧЕЛОВЕЧЕ К ДАТЕ

  • 0
    Все, что вам нужно, это включить функцию статического содержимого для IIS. Это не имеет ничего общего с WCF.
  • 1
    @ProfK зависит от того, почему вы получаете эту ошибку, разные причины приводят к одной и той же ошибке - если вы получаете ошибку с SVC-файлом, настроенным для использования WCF, то это исправлено выше.
Показать ещё 1 комментарий
10

Существует вероятность того, что пул приложений, созданный для вашего приложения по умолчанию, - это версия 2. Итак, хотя вы видите обработчик для расширения .svc в списке, он не работает и рассматривает его как статический файл. Все, что вам нужно, это открыть свойства пула приложений и переключить его на версию 4.

8

Зарегистрируйте asp.net снова.... решит проблему.
Изображение 6022

Перейдите в Visual Studio Command Prompt,
И зарегистрируйте asp.net как windows\microsoft.net\Framework [.Net version num]\aspnet_regiis.exe -i

  • 2
    aspnet_regiis.exe -i отвечает: «Этот параметр не поддерживается в этой версии операционной системы». Почему IIS такая боль в заднице?
5

У меня была такая же проблема на машине Windows 8, которую я настраиваю. Я установил vs2012 перед vs2010, который устанавливает .NET framework 4.5. У меня есть пулы приложений, запущенные в 4.0. Я убедился, что у меня есть aspnet, зарегистрированный для 4.0, используя aspnet_regiis -i. Это все еще не помогло. Затем я открыл функции Windows и заметил, что 4.5 добавлен набор под названием ".NET Framework 4.5 Advanced Services". Я включил службу WCF node и ее дочерние элементы, а затем моя конечная точка svc работала правильно. Надеюсь, это поможет людям, которые переходят на Windows 8.

  • 0
    Server 2012, IIS8 и здесь, спасибо за указатель, который вы указали мне в правильном направлении. Для тех, кто заинтересован, мне потребовалось включить роль сервера приложений, а также роль веб-сервера. Я нашел нужную мне информацию здесь: msdn.microsoft.com/en-us/library/hh167503(v=nav.70).aspx
3

Я наткнулся на этот вопрос, когда столкнулся с тем же вопросом. Основной причиной моей проблемы был неправильно настроенный пул приложений. Он был установлен для 2.0 непреднамеренно, когда ему нужно было установить значение 4.0. Ответ по следующей ссылке помог мне раскрыть эту проблему: http://forums.iis.net/t/1160143.aspx

2

Для других людей, читающих это:

Это может произойти, если зарегистрированная версия .Net не выбрана в разделе "Основные настройки" пула приложений, прикрепленного к вашему веб-сайту. Например, ваш пул приложений для сайтов имеет .Net v2.0, но вы зарегистрировали v4.0

2

Еще одно возможное решение, которое я обнаружил с тем же сообщением об ошибке.

При попытке настроить веб-приложение .NET 4.0 на новый пул приложений я получал эту странную ошибку, сообщающую мне, что он пытался обработать мой файл aspx с помощью статического обработчика файлов, что не имеет смысла.

По какой-то причине ISAPI для .NET 4.0 был отключен в области ISAPI и CGI Restrictions на уровне сервера в диспетчере IIS. Установить его для включения было все, что требовалось, однако диспетчер IIS 7.5 настолько запутан, что ему трудно следовать, мне потребовалось много времени, чтобы понять это.

Я предполагаю, что, поскольку это было приложение 4.0, которое не могло обрабатываться 4.0 Engine, по умолчанию использовался обработчик статических файлов.

2

У меня была та же проблема. Когда я добавил Static content feaute для IIS, он отлично работает.

1

cmd → щелкните правой кнопкой мыши → Запуск от имени администратора

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

0

Для Windows 10/Framework 4.7 мне пришлось включить HTTP-активацию с помощью следующего метода:

  1. Панель управления> Программы и функции> Включение или выключение функций Windows
  2. В.NET Framework 4.7 Advanced Services разверните службы WCF, выберите, чтобы проверить активацию HTTP и все, что вам нужно при работе с WCF
  3. Нажмите "ОК" и дайте установке сделать свое дело, затем откройте командную строку администратора и выполните команду IISRESET
0

это может быть несколько причин, в моем случае в разделе Application pool- > advance setting- > Enable 32-bit application (должно быть верно). Ранее было установлено значение false.

0

У меня была такая же проблема, я просто изменил версию целевой платформы на веб-сайте на версию, в которой она была разработана, в IIS. Это решило мою проблему. Надеюсь, это поможет...

Спасибо

0

Один из худших сценариев, который я только что решил, - это конфликтная запись в Web.config.

На моей локальной машине у меня не было расширения .woff, зарегистрированного в IIS, поэтому я добавил его с помощью Web.config. Но на производственном сервере .woff зарегистрирован тип mime. Это вызвало конфликт уровня приложения.

Забавная часть - для этого нет ошибок. Просто угадайте работу (в первый раз, конечно).

Итак, для меня решение было просто удалить и/или элементы из web.config.

0

Я получил это сообщение для приложения на iis 7.5 с классическим пулом приложений, назначенным для .net 2.0. Мне нужно было перейти к сопоставлениям Handler и добавить две карты script, оба были одинаковыми, за исключением имени. одно имя было svc-ISAPI-2.0-64, другое - svc-ISAPI-2.0. Путь запроса был .svc. Исполняемый файл был% SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll. я перезапустил iis, и все были счастливы

0

Используя диспетчер IIS, я обнаружил, что файлы .aspx были сопоставлены (под "сопоставлениями обработчиков" ) с ISAPI 2.0 - даже несмотря на то, что ранее был установлен ASP.NET 4.5. Редактирование их, чтобы указать (также) на исполняемый файл для ISAPI 4.0 64bit, устранило проблему.

Исполняемый файл был найден в % Windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll

-2

Перейдите к своему вкусу .Net и архитектуры архитектуры CPU с помощью CMD или powershell

Введите эту команду: aspnet_regiis –r

  • 0
    В Windows Server 2008 R2 говорится: «Этот параметр не поддерживается в Windows Vista».
  • 0
    Там нет опции под названием -r

Ещё вопросы

Сообщество Overcoder
Наверх
Меню