Подтвердить что ты не робот

HTTP 404 при доступе к файлу .svc в IIS

Недавно я создал службу WCF, которая отлично работает при тестировании с Visual Studio 2008. но когда я развертываю проект в IIS, и я пытаюсь получить доступ к файлу .svc из IIS, я получаю эту ошибку:

"Server Error in '/' Application.The resource cannot be found.  "

У меня эта проблема в течение последних 4 дней.

в сопоставлениях диспетчера диспетчера IIS, я вижу две записи для .svc:

svc-Integrated and svc-ISAPI-2.0
4b9b3361

Ответ 1

Вам необходимо добавить сопоставление для расширения SVC в ASP.NET. Самый простой способ сделать это - запустить ServiceModelReg.exe -i из C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation. Вам также может понадобиться включить ASP.NET, если вы еще этого не сделали.


Если вы используете Windows Server 2012 или 2016, следуйте этим инструкциям:

Ответ 2

Что сработало для меня, в Windows 2012 Server R2:

WCF HTTP 404

Спасибо "Аарон D"

Ответ 3

Я нашел эти инструкции в сообщении в блоге, в котором указан этот шаг, который работал у меня (Windows 8, 64-бит):

Убедитесь, что в функциях Windows у вас есть оба параметра WCF в .Net framework. Итак, перейдите в Панель управления → Программы и функции → Включите функции Windows ВКЛ/ВЫКЛ → Функции → Добавить функции → Возможности .NET Framework X.X. Убедитесь, что .Net framework говорит, что он установлен, и убедитесь, что под ним включена WCF-активация node (флажок отмечен), и оба варианта под активацией WCF также проверяются.
These are:
* HTTP Activation
* Non-HTTP Activation
Both options need to be selected (checked box ticked).

Ответ 4

Я вижу, что вы уже решили свою проблему, но для потомков:

У нас была аналогичная проблема, и обработчик SVC был уже установлен правильно. Наша проблема заключалась в обработке запросов обработчика ExtensionlessUrl до того, как они достигли обработчика SVC.

Чтобы проверить это - в сопоставлениях обработчиков в диспетчере IIS на уровне веб-сервера, просмотрите список обработчиков по порядку (это вариант с правой стороны). Если различные обработчики ExtensionlessUrl появляются над обработчиками SVC, затем повторно перемещайте их вниз, пока они не будут внизу.

Ответ 5

Проверяет, что ваш каталог был преобразован в приложение, является вашим IIS.

Ответ 6

Сегодня у меня была такая же проблема.

Для меня решение состояло в том, чтобы войти в IIS, щелкнуть правой кнопкой мыши по имени нового веб-сайта, выбрать "Свойства", "ASP.Net" и изменить версию ASP.Net с "1.1.4322" (которую он установил как по умолчанию) до 2.0.50727.

Как только я это сделал, я мог щелкнуть правой кнопкой мыши на файле .svc, щелкнуть "Обзор" и посмотреть веб-страницу дружественного сервиса.

Ответ 7

Это также может стать проблемой после включения IIS 6 Management Compatibility в Windows 10. Настройка защиты HTTP-активации в службах WCF устранит проблему.

Ответ 8

В моем случае ошибка была вызвана неправильными настройками сопоставления в файле applicationhost.config(\ System32\inetsrv\config). По какой-то причине Visual Studio 2013 испортил его при создании виртуального каталога в IIS. Исправление заключалось в том, чтобы вручную отредактировать раздел сайтов в файле.

Ответ 9

Существует 2 версии .net framework, которые предоставляются в функциях функции добавления роли/функций на сервере 2012

а. 3.5

б. 4.5

В зависимости от используемой структуры вы можете включить HTTP-Activation в службах WCF.:)

Ответ 10

В моем случае Win 10. файл applicationHost.config поврежден VS 2012. И вы можете получить копию истории этого файла в C:\inetpub\history. Затем перезапустите IIS, и он работает правильно.

Ответ 11

Мне пришлось добавить расширение .svc к разрешенным расширениям в настройках фильтрации запросов (раньше получало 404,7 ошибок).

enter image description here