Проблема с типом сервиса в директиве ServiceHost в сервисе wcf - PullRequest
37 голосов
/ 12 марта 2011

Я разрабатываю простой сервис wcf для тестирования. Когда я тестирую этот сервис с локальным IIS 7.5, он работает правильно. Но когда я размещаю его в веб-IIS, я получаю эту ошибку:

Тип 'WcfServiceLibrary1.Service1', предоставляется в качестве атрибута службы значение в директиве ServiceHost, или предусмотрено в элементе конфигурации system.serviceModel / serviceHostingEnvironment / serviceActivations не может быть найден.

И мой ServiceHost:

<%@ ServiceHost Language="C#" Debug="true" Service="WcfServiceLibrary1.Service1" %>

Пожалуйста, помогите мне решить эту проблему

Ответы [ 18 ]

1 голос
/ 20 августа 2016

Странно, но, посмотрев и попробовав другие предложения, я все еще получал сообщение об ошибке: Тип ', предоставленный как значение атрибута Service в директиве ServiceHost или предоставленный в элементе конфигурации system.serviceModel / serviceHostingEnvironment / serviceActivations, не найден.

Конечно, мы все получаем большой проект с большим количеством DLL. Оказалось, что некоторые из более старых компонентов в моем решении были нацелены на .Net 4.5, а новые dll были собраны с 4.5.1. Когда 4.5 dll ссылались на 4.5.1 dll .... Не уверен, почему я был счастливой маленькой морской свинкой, чтобы быть первым в моей команде, чтобы найти это. В то время как исправление было очевидным и достаточно простым, просто все библиотеки были предназначены для одной и той же среды выполнения .Net.

Просто хотелось бы, чтобы Visual Studio замечала, что библиотеки DLL в одном и том же решении должны предназначаться для одной и той же среды выполнения .Net и генерировать предупреждение / ошибку при сборке, особенно если у нас есть решение и ссылка на проект, а среды выполнения не совпадают ...

1 голос
/ 02 января 2014

Несмотря на то, что это немного отличается от вопроса (не web iis): я попал сюда через поиск, потому что я получал эту ошибку, пытаясь отладить мой сервис - если у вас есть несколько сервисов внутри одного решения, эта ошибка произойдетесли рассматриваемое решение еще не построено, и, следовательно, DLL не создается при попытке доступа к нему.Так что, если вы работаете локально, убедитесь, что все решение построено!

0 голосов
/ 09 октября 2012

Другая причина этой проблемы часто заключается в том, что служба wcf перемещается из одного каталога в другой, а файл svc не обновляется ... самое простое решение - дважды проверить файл .svc и убедиться, что определение службы определен правильно.

0 голосов
/ 10 апреля 2016

Пожалуйста, посмотрите на https://msdn.microsoft.com/en-us/library/ms733766(v=vs.100).aspx

Вам нужно сделать 2 вещи, чтобы иметь возможность разместить службу на IIS или даже на IIS_EXPRESS в Visual Studio.

1) Обновите Web.Config, включив в него ServiceActivations

изменение:

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />

до

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true">
  <serviceActivations>
    <add service="API.Service1" relativeAddress="Service1.svc"/>
 </serviceActivations>
</serviceHostingEnvironment>

2) Вам необходимо создать каталог с именем App_Code в корневом каталоге. Теперь вам нужно переместить Сервис (например: Service1.svc) из корневого каталога в каталог App_Code. Таким образом, у вас будет App_Code \ Service1.svc

Если вы просматриваете Сервис http://localhost:63309/Service1.svc должно работать.

0 голосов
/ 22 января 2015

enter image description hereenter image description here

Первый раз, когда вы размещаете приложение службы WCF в IIS? Многие решили свои проблемы так или иначе. Однако, если все ваше решение верное и ваша ошибка связана с размещением вашего приложения в IIS, убедитесь, что ваш физический путь в IIS при добавлении веб-сайта указывает на каталог «bin» вашего решения, как показано ниже на снимках экрана.

0 голосов
/ 31 июля 2014

У меня тоже была эта проблема, и что для меня волшебство было перезапустить IIS.Это очень странная ошибка.

0 голосов
/ 07 мая 2014

Это случилось со мной так же, и решением было создать фейдер с именем "bin" и поместить в него dll. Затем обновите веб-сайт на IIS, и это все

0 голосов
/ 31 марта 2014

У меня возникла та же проблема, когда я загрузил свой рабочий сервис localhost в новое место на хосте. Я создаю новый виртуальный каталог и публикую в нем свой сервис через Visual Studio (FTP). Проблема решена.

...