Ответ 1
Нажмите "Пуск" → "Выполнить" cmd
и введите:
cd "\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation"
ServiceModelReg.exe -i
Простая проблема. Я запускаю VS2008 и создаю новое приложение службы WCF. Это создаст приложение по умолчанию с несколькими методами тестирования, показывая, что он работает. Я нажимаю CTRL + F5, и он действительно работает! Большой! Однако он использует сервер разработки Visual Studio, который я не хочу поддерживать.
Итак, я перехожу к свойствам проекта, переключаюсь на использование локального веб-сервера IIS, создаю виртуальный каталог и снова нажимаю CTRL + F5. И эта ошибка "Ошибка HTTP 404.3 - не найдена" приветствует меня.
Итак, что-то в моей настройке IIS7/Vista-64 неверно. Что я могу потерять?
Нажмите "Пуск" → "Выполнить" cmd
и введите:
cd "\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation"
ServiceModelReg.exe -i
Если вы столкнулись с этой проблемой в первый раз. с Windows 8 и IIS 8.0 обязательно активируйте функцию Windows Communication Foundation HTTP.
Однако проблема заключается в перерегистрации 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, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'.
Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде. Сведения об исключении: System.TypeLoadException: Не удалось загрузить тип 'System.ServiceModel.Activation.HttpModule' из сборки 'System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'.
Эта ошибка может возникнуть, когда IIS установлен после установки .NET Framework 4 или если версия 3.0 модуля активации HF для WCF установлена после установки IIS и .NET Framework 4.
Чтобы устранить эту проблему, вы должны использовать ASP.NET IIS Registration Tool (Aspnet_regiis.exe,) для регистрации правильной версии ASP.NET. Это можно сделать, используя параметры -iru при запуске aspnet_regiis.exe следующим образом:
aspnet_regiis.exe -iru
И кредит, где он должен: Источник
Мне нужно было отметить "HTTP-активацию" в разделе "Добавить службы ролей" в Windows Server 2012.
попробуйте установить IIS, расширив свою интернет-информационную службу, а затем проверьте ASP.Net 3.5 или ASP.Net 4.5 и ISAPI... в корне мировых стран.........
пожалуйста, посмотрите изображение, чтобы больше помочь
Я попытался запустить 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.