Не удалось найти имя контракта x.y.IService в списке контрактов, реализованных сервисом z.t.MyService. - PullRequest
0 голосов
/ 02 июня 2011

Я работаю над очень простым сервисом WCF. Сначала все было хорошо, затем я переместил интерфейс службы в отдельный файл DLL. С тех пор я получил эту ошибку:

Название контракта x.y.IService может не найти в списке договоров реализован сервисом z.t.MyService

Мой конфигурационный файл выглядит так:

   <endpointBehaviors>
      <behavior name="webHttpBehavior">
         <enableWebScript />
      </behavior>
   </endpointBehaviors>
</behaviors>
<services>
   <service name="z.t.MyService">
      <endpoint address=""  
                binding="webHttpBinding" 
                behaviorConfiguration="webHttpBehavior"
                contract="x.y.IService" />
   </service>
</services>...

и мой сервис выглядит так:

using x.y;

namespace z.y
{
    public class MyService : IService
    {

    }
}

Все остальное, кроме службы, прекрасно работает с этим пространством имен. Где я не прав?

Заранее спасибо.

1 Ответ

1 голос
/ 02 июня 2011

Все выглядит хорошо, если предположить, что z.t.MyService является опечаткой. Это именно то, что мы делаем, и все работает для нашего сервиса.

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

Вы можете сделать следующее

public interface IActualService : IService<MyService>

Тогда вы просто используете IAcutalService в качестве интерфейса для вашего сервиса.

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