Ошибка HTTP 404.3 - не найдена »при просмотре службы wcf в Windows Server 2008 (64-разрядная версия) - PullRequest
68 голосов
/ 18 июля 2010

Я разрабатываю приложение на основе .Net Framework 3.5 sp1 и размещено на Windows Server 2008 (64-разрядная версия).

При локальном просмотре службы wcf (.svc) все в порядке, но при просмотре с полным доменомURL, получено сообщение об ошибке.

локальный адрес выглядит так: http://localhost/MyService.svc

, а адрес домена выглядит следующим образом: http://MySite.ir/MyService.svc

кстати, страницы (.aspx) и другие файлы работают корректно как на локальном хосте, так и с адресом домена.

любая идея будет оценена

Вот подробная ошибка:


Ошибка HTTP 404.3 - Не найдено

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

Модуль: StaticFileModule

Уведомление: ExecuteRequestHandler

Обработчик: StaticFile

Код ошибки: 0x80070032

Запрошенный URL: http://MySite.ir:80/MyService.svc

Физический путь: D: \ inetpub \ vhosts \ MySite.ir \ httpdocs \ MyService.svc

Метод входа: Аноним

Пользователь входа Аноним

Ответы [ 7 ]

185 голосов
/ 12 августа 2014

Пожалуйста, убедитесь, что вы активировали компоненты WCF из здесь .

Или альтернативный и простой способ - перейти на панель управления -> Включить или выключить функцию Windows -> и сделатьУбедитесь, что все опции отмечены, как указано на скриншоте ниже.

enter image description here

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

24 голосов
/ 19 июля 2010

ОК, вот ответ:

Перейти к Отображения обработчиков | Добавить диспетчер обработчиков -> А затем добавить ниже информацию

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

Тип: System.ServiceModel.Activation.HttpHandler, System.ServiceModel, версия = 3.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089

Имя: svc-Integrated

9 голосов
/ 23 мая 2014

Если у кого-то есть эта проблема в Windows Server 2012, ответ Билла Муна здесь решил ее для меня:

"Для Windows Server 2012 ... В диспетчере серверов нажмите кнопку Добавитьролей и функций, выберите соответствующий сервер, затем выберите «Функции». В разделе «Функции .NET Framework 4.5» вы увидите службы WCF, а под ним - активацию HTTP. "

7 голосов
/ 15 февраля 2018

У меня на ноутбуке Windows 10 и я использую Visual Studio 2015 для разработки WCF. WCF работает нормально в Visual Studio, но при размещении в IIS я получил ту же ошибку.

Я проверил обработчик IIS. Расширение svc отсутствует. Поэтому я попытался добавить новый обработчик в IIS, как предложил Мори в первом ответе. Я не нашел тип "System.ServiceModel.Activation.HttpHandler".

Поэтому я открыл «Включить или выключить функции Windows» и установил функции, как показано на снимке экрана.

Это сработало для меня.

enter image description here

0 голосов
/ 23 декабря 2015

Попробуйте отключить активацию WCF HTTP из окна «Включить или выключить Windows» ( См. Здесь ) и переустановить, перейдя на

%windir%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\

и выполнить ServiceModelReg -i

0 голосов
/ 12 марта 2015

Я хотел добавить это как комментарий к ответу, но у меня не было достаточно повторений для него.Я попытался запустить ServiceModelReg и aspnet_regiis.exe с различными флагами и добавил функцию активации HTTP, но он все еще не работал.Даже использование интерфейса отображения обработчика в IIS не работало, так как он не мог найти System.ServiceModel.Activation.HttpHandler.Наконец, мне удалось добавить обработчик, о котором Мори упоминает вручную, в мой файл web.config.

<system.webServer>
    <handlers>
      <add name="svc-Integrated" path="*.svc" verb="GET,HEAD,POST,DEBUG" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" allowPathInfo="false" preCondition="integratedMode" responseBufferLimit="4194304" />

Мой проект работал с .Net 3.5 и IIS 7.5 в Windows 7 и IIS 7.0 в Win Server 2008 R2.

0 голосов
/ 22 ноября 2013

Если вы используете .Net 4.x, PublicKeyToken имеет вид 31bf3856ad364e35.

Однако после этого поста о правильной установке служб WCF в IIS обработчик был настроен дляя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...