WCF ServiceContract и svcutil выпуск

У меня есть открытый интерфейс автоматически сгенерированный бу svcutil:

[System.ServiceModel.ServiceContractAttribute(Namespace="...", ConfigurationName="...")]
public interface MyInterface

Тогда у меня есть веб-сервис asmx, унаследовавший его и работающий нормально. Я пытаюсь не конвертировать его в WCF, но когда я использую сервис (в коде asmx.cs) с помощью ServiceContract:

[ServiceContract(Namespace = "...")]
public class MyService : MyInterface 

Также я зарезервировал файл.svc и добавил настройку system.serviceModel в файл конфигурации. Цель состоит в том, чтобы перенести службу asmx в службу WCF.

У меня есть эта ошибка:

Класс обслуживания типа MyService определяет ServiceContract и наследует ServiceContract от типа MyInterface. Наследование контрактов может использоваться только среди типов интерфейса. Если класс помечен с помощью ServiceContractAttribute, он должен быть единственным типом в иерархии с ServiceContractAttribute.

Служба asmx по-прежнему работает нормально. Только.svc дает мне проблемы. Мой вопрос, как это исправить. MyInterface - это интерфейс, поэтому я не вижу, в чем проблема и почему я все равно получил ошибку.

Примечание. Я не хочу изменять MyInterface, поскольку он автоматически генерируется из svcutil из моей схемы wsdl, и я не хочу, чтобы этот интерфейс редактировался вручную. Вся идея заключается в том, чтобы типы сервисов автоматически генерировались из WSDL и чтобы мои усилия по разработке команды были сохранены с помощью ручного редактирования.

Любая помощь приветствуется.

1 ответ

Решение

Вы должны удалить ServiceContractAttribute от MyService учебный класс. Этот атрибут уже определен в интерфейсе, и это правильный способ указать, что этот интерфейс будет представлен как служба WCF.

Другие вопросы по тегам