Как решить ошибку «Ошибка HTTP 404.3 - Не найдено»? - PullRequest
20 голосов
/ 07 октября 2009

Простая проблема. Я запускаю VS2008 и создаю новое приложение службы WCF. Это создаст приложение по умолчанию с несколькими методами тестирования, показывающими, что оно работает. Я нажимаю CTRL + F5, и это действительно работает! Большой! Однако он использует сервер разработки Visual Studio, который я не хочу поддерживать.

Итак, я перехожу к свойствам проекта, переключаюсь на использование локального веб-сервера IIS, создаю виртуальный каталог и снова нажимаю CTRL + F5. И эта ошибка «HTTP Error 404.3 - Not Found» приветствует меня.

Итак, что-то в моих настройках IIS7 / Vista-64 неверно. Чего мне не хватать?

Ответы [ 6 ]

26 голосов
/ 07 октября 2009

Нажмите Пуск -> Выполнить cmd и введите:

cd "\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation"
ServiceModelReg.exe -i
24 голосов
/ 15 января 2014

Если вы столкнулись с этой проблемой впервые. в Windows 8 и IIS 8.0 обязательно активируйте Windows Communication Foundation HTTP функцию Windows.

  1. Зайдите в Панель управления, выберите "Программы и компоненты"
  2. В боковом меню лифта выберите «Включение или отключение функций Windows» .
  3. Развернуть ". Net Framework 3.5 (включает .NET 2.0 и 3.0)" item
  4. Наконец выберите «Активация Windows Communication Foundation HTTP»
  5. Наслаждайтесь своим обслуживанием WCF .
10 голосов
/ 23 июня 2010

Проблема, однако, заключается в том, чтобы затем перерегистрировать ASP.Net в IIS, что объясняется ниже.

А также, если вы работаете на 64-битной машине, всегда используйте пути Framework64: C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -iru

Ниже приведено объяснение от Microsoft:

http://download.microsoft.com/download/0/A/E/0AEB3BC1-506E-4954-8AB1-4FA2EE75985C/ReleaseNotes.docx

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

Ошибка сервера в приложении / WCFApplication

Не удалось загрузить тип 'System.ServiceModel.Activation.HttpModule' из сборки 'System.ServiceModel, версия = 3.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089'.

Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде. Сведения об исключении: System.TypeLoadException: не удалось загрузить тип 'System.ServiceModel.Activation.HttpModule' из сборки 'System.ServiceModel, версия = 3.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089'.

Эта ошибка может возникать, когда IIS устанавливается после установки .NET Framework 4 или если версия 3.0 модуля активации HTTP WCF установлена ​​после установки IIS и .NET Framework 4.

Для решения этой проблемы необходимо использовать средство регистрации ASP.NET IIS (Aspnet_regiis.exe,), чтобы зарегистрировать правильную версию ASP.NET. Это можно сделать с помощью параметров –iru при запуске aspnet_regiis.exe следующим образом:

aspnet_regiis.exe -iru

И кредит, где он должен: Источник

6 голосов
/ 06 марта 2013

Мне пришлось поставить галочку «Активация HTTP» в «Добавить службы ролей» в Windows Server 2012.

3 голосов
/ 15 июня 2013

попробуйте установить IIS, расширив свою информационную интернет-службу, а затем проверьте ASP.Net 3.5 или ASP.Net 4.5 и ISAPI .... в корневом каталоге ......... пожалуйста, смотрите изображение для получения дополнительной помощи enter image description here

1 голос
/ 12 марта 2015

Я попытался запустить ServiceModelReg и aspnet_regiis.exe с различными флагами и добавил функцию активации HTTP, но он все еще не работал. В конечном итоге сработало добавление следующего обработчика вручную в мой файл 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 и 7.0.

...