"Запрошенная страница не может быть использована из-за конфигурации расширения". сообщение об ошибке

Я получаю это сообщение об ошибке при попытке запустить приложение. Я не знаю, как это исправить:

Ошибка HTTP 404.3 - не найдена Страница вы не можете подавать запрос из-за расширения конфигурации. Если страница является script, добавьте обработчик. Если файл необходимо загрузить, добавить MIME-карту.

Вот скриншот страницы с ошибкой: alt text

Что я могу сделать, чтобы исправить эту ошибку?

Ответ 1

Используйте aspnet_regiis.exe, чтобы зарегистрировать версию используемой платформы .NET.

Это обычная проблема и происходит, когда IIS устанавливается после VS или .NET framework.

Примечание - для пользователей Windows 8/10 см. другой ответ JohnOpincar ниже. А также комментарий/отзыв от Кевина Брайдона.

Ответ 2

В Windows 8/10 вы должны использовать

  • Открыть панель управления →
  • Программы и возможности →
  • Включить или выключить функции Windows →
  • Информационные службы Интернета (IIS) →
  • Услуги всемирной паутины →
  • Особенности разработки приложений →
  • Проверьте соответствующие пункты, такие как включение ASP.NET. (т.е. установите соответствующую версию, с которой вы хотите настроить свои сайты)

Ссылка: Проверьте решение этого вопроса для справки

Ответ 3

Я исправил это на моей Windows 10:

  • Перейдите на панель управления - Программы и функции - включите или отключите функции Windows.

  • Выберите .NET Framework 4.6 Дополнительные службы - службы WCF

  • Проверьте активацию HTTP.

  • Сделано ОК.

Ответ 4

В моем случае мне нужно было добавить типы MIME для каждого расширения файла, которое я хотел бы обслуживать в веб-конфигурации:

<system.webServer>
    <staticContent>
      <mimeMap fileExtension=".shp" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".dbf" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".kml" mimeType="text/xml" />
    </staticContent>
    ...
</system.webServer>

Ответ 5

В случае, если это помогает кому-либо, я получал эту ошибку при попытке запустить aspnet_regiis.exe:

Не удалось выполнить операцию с 0x8007000B

Была сделана попытка загрузить программу с неправильным форматом

Как оказалось, на сервере выполнялся 64-разрядный бит 2008 года, и я пытался запустить 32-разрядную версию утилиты. Исправлена ​​проблема с версией, найденной в \Windows\Microsoft.NET\Framework64\v2.0.50727.

c:\Windows\Microsoft.NET\Framework64\v2.0.50727>aspnet_regiis.exe -i

Ответ 6

У меня была такая же ситуация с моим клиентом. У нас есть собственный продукт, который устанавливает веб-сайт. Установщик настраивает все: пул IIS, сайт, web.config и т.д.

Мы установили другой веб-сайт, используя наш установщик. Мы ввели те же параметры, поэтому web.configs оказались одинаковыми на обоих сайтах.

Однако недавно установленный сайт работал нормально, а старый - нет. Затем я открыл 2 окна диспетчера IIS и начал сравнивать разницу в настройках веб-сайта. И я нашел проблему.

Кто-то удалил все сопоставления обработчиков со старым сайтом. Если вы перейдете к "сопоставлениям обработчиков", вы увидите там aspx, asmx и другие расширения и имена обработчиков. Итак, на старом сайте все эти записи отсутствовали.

Итак, я бы предложил сначала проверить "сопоставления обработчиков" - там должно быть много записей. Создайте новый веб-сайт и сравните его, чтобы узнать, сколько должно быть.

Кто удалил их, человека или другую программу, я понятия не имею. Если кто-то может сказать, существует ли какое-либо приложение отслеживания, которое сообщит, что пользовательский домен \john модифицировал веб-сайт на дату "07.03.2012 12:34", что было бы полезно.

Ответ 7

Я исправил свою проблему на сервере Windows 2012, установив все функции WCF.

A) Диспетчер серверов > Управление [левая верхняя левая] > Добавить роли и функции

B) В функциях > .Net Framework 4.5. Функции > Службы WCF

C) Проверить (включить) функции. Я проверил все.

D) Установите

Ответ 8

Запуск Windows Server 2008 R2 64bit и .net framework 4.5, выполнил эту команду из этого места и прошел успешно:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -i

выход:

Microsoft (R) ASP.NET RegIIS version 4.0.30319.0
Administration utility to install and uninstall ASP.NET on the local machine.
Copyright (C) Microsoft Corporation.  All rights reserved.
Start installing ASP.NET (4.0.30319.0).
.....
Finished installing ASP.NET (4.0.30319.0).

Ответ 9

Как упоминалось в @Mahmoodvcs, мне нужно было установить/добавить типы MIME для расширения файла, которое мне нужно было непосредственно загрузить/загрузить, в этом случае это файл дампа Heroku (резервная копия базы данных postgres), поэтому, чтобы установить общедоступную IIS, где вы можете загружать эти файлы, не требуя веток AWS S3 или общих ресурсов HTTP, таких как dropbox, это потрясающий вариант!

<staticContent>
  <mimeMap fileExtension=".dump" mimeType="application/octet-stream" />
</staticContent>

Ответ 10

Кстати, я только что узнал этот пост: http://blogs.msdn.com/b/webtopics/archive/2010/03/19/iis-7-5-how-to-enable-iis-configuration-auditing.aspx в нем объясняется, как проводить аудит изменений в IIS. Для тех, кто сталкивается с подобными проблемами, я предлагаю включить аудит, а затем посмотреть, почему ваш сайт перестает работать.

Ответ 11

У меня тоже была эта ошибка, на Windows Server 2008 IIS 7 у меня не было визуальной студии, поэтому переустановка/восстановление .NET 4.0 сделала трюк.

Ответ 12

Чтобы добавить расширение для обслуживания в IIS, выполните следующие действия:

  • Откройте диспетчер IIS и перейдите к уровню, который вы хотите управлять.
  • В представлении "Возможности" дважды щелкните MIME-типы.
  • На панели "Действия" нажмите "Добавить".
  • В диалоговом окне "Добавить тип MIME" введите расширение имени файла в текстовое поле "Расширение имени файла".... Введите тип MIME
  • в текстовом поле типа MIME.
  • Нажмите "ОК".

Ответ 13

Убедитесь, что пул приложений в IIS (в случае IIS7 или выше) выбран как интегрированный. В этом случае, вероятно, изменение в Classic может решить эту проблему.

Ответ 15

Что касается сервера 2016, я должен добавить:

  • Запустите эту команду: aspnet_regiis -lv из этого каталога: C:\Windows\Microsoft.NET\Framework\v2.0.50727\ Это дает вам лучший взгляд на происходящее

  • На сервере 2016 установка .net и iis из последовательности не Кажется, проблема.

  • Что более вероятно, будет проблемой на сервере 2016, просто asp.net не установлен на машине.

Ответ 16

Для Windows Server 2016

  1. Открыть форму Server Manager
  2. ManageAdd Roles and Features
  3. Далее до страницы Features
  4. Проверьте функцию WCF Services со всеми подфункциями
  5. Next и Install

Ответ 17

Приложение IIS PHP 7.3 в Windows Server 2012 R2

Это был двухступенчатый процесс для меня.

1) Включить службы WCF - с перезапуском сервера

2) Добавьте сопоставление модуля FASTCGI

1)

Перейдите в Диспетчер серверов> Добавить роли и функции Выберите свой сервер из пула серверов Выберите Функции> Услуги WCF. Я выбрал все категории, а затем установил

2)

Зайди в IIS> выбрал сайт В центральной панели выберите Отображения обработчиков. В правой части окна выберите "Добавить сопоставления модулей"

.В окне редактирования:

Путь запроса: *.php

Модуль: FastCgimodule

Исполняемый файл: я перешел к файлу php-cgi.exe внутри своей папки PHP

Имя: PHP7.3

Теперь, когда я думаю об этом. Может быть способ добавить это сопоставление обработчика в веб-конфигурацию, так что если вы переносите свой сайт на другой сервер, вам не нужно добавлять это сопоставление снова и снова.

ОБНОВЛЕНИЕ: Вот оно. Добавьте это в раздел веб-конфигурации.

<add name="PHP-FastCGI" verb="*" 
  path="*.php" 
  modules="FastCgiModule"
  scriptProcessor="c:\php\php-cgi.exe" 
  resourceType="Either" />