Как решить ошибку HTTP 404.3 — Not Found?

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

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

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


person Wim ten Brink    schedule 06.10.2009    source источник
comment
Найдено iweb.adefwebserver.com/Default.aspx?tabid=57&EntryID=34 который решил мою проблему. Оставьте это открытым для других, чтобы добавить другие возможные варианты решения этой проблемы.   -  person Wim ten Brink    schedule 07.10.2009
comment
напишите это как ответ и отметьте его принятым, чтобы было понятнее   -  person Jonathan Fingland    schedule 07.10.2009
comment
Это не работает. Используем ли мы еще 3.0? Или ссылка устарела?   -  person obesechicken13    schedule 23.12.2013


Ответы (6)


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

cd "\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation"
ServiceModelReg.exe -i
person bendewey    schedule 06.10.2009

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

  1. Перейдите в панель управления, выберите "Программы и компоненты".
  2. В боковом меню подъемника выберите "Включение или отключение компонентов Windows".
  3. Разверните элемент ".Net Framework 3.5 (включая .NET 2.0 и 3.0)"
  4. Наконец, выберите "HTTP-активация Windows Communication Foundation".
  5. Наслаждайтесь своей службой WCF.
person Yazan Fahad Haddadein    schedule 15.01.2014
comment
Ваш реальный ответ, спасибо. Обязательно сделайте то же самое для 4.0. - person Alex Nolasco; 14.02.2014
comment
Это правильный, «не хакерский» способ избавиться от ошибки 404.3. - person klm_; 20.08.2017

Проблема, однако, заключается в том, чтобы перерегистрировать 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 модуля активации WCF Http установлена ​​после установки IIS и .NET Framework 4.

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

aspnet_regiis.exe -iru

И упоминание, где это необходимо: Источник< /а>

person Doguhan Uluca    schedule 23.06.2010

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

person GONeale    schedule 06.03.2013

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

person Mr.Buntha Khin    schedule 15.06.2013
comment
Ваш ответ немного запоздал... :-) - person Wim ten Brink; 17.06.2013

Я попытался запустить 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.

person Janspeed    schedule 12.03.2015