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
Ответы
Ответ 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]()