Странная ошибка регистрации компонента с помощью Castle Windsor WcfFacility - PullRequest
2 голосов
/ 04 мая 2009

Я пытаюсь преобразовать свой существующий сайт, чтобы использовать WCF для связи со своими службами в другом окне. В настоящее время я использую авторегистрацию, чтобы напрямую подключить свои услуги. Когда я пытаюсь использовать WcfFacility of Windsor, я получаю исключение ComponentRegistrationException на одном из моих интерфейсов, который я пытаюсь зарегистрировать. Ошибка приведена ниже, это происходит только на определенном интерфейсе, все остальные интерфейсы работают правильно и кодируются одинаково.

Type Demo.IFooService is abstract.
As such, it is not possible to instansiate it as implementation of Demo.IFooService service

У меня есть другое приложение для форм Windows, которое я преобразовал для использования WCF с теми же службами, и это работает на 100%.

Я регистрирую службы WCF (как в Windows, так и в веб-приложениях), используя следующий код:

Container.Register(Component.For<IFooService>()
.Named("FooService")
.ActAs(new DefaultClientModel
  {
    EndPoint = WcfEndPoint.BoundTo(new BasicHttpBinding())
               .At("http://localhost/services/fooservice.svc")
  }
 ));

Интерфейс помечен атрибутами ServiceContract и OperationContract и является таким же, как и все остальные.

Я понятия не имею, почему Виндзор видит это как абстрактный класс, но правильно регистрирует другой.

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 05 мая 2009

Я решил эту проблему, кажется, я каким-то образом удалил строку кода, которая регистрирует WCFFacility в веб-приложении, но все же сохранил его в приложении для Windows, что объясняет, почему он там работал. Кажется, я идиот ... да ладно.

Надеюсь, это поможет любому, кто столкнется с этим исключением и кто такой же идиот, как и я:)

Спасибо за помощь в любом случае.

1 голос
/ 05 мая 2009

Получить последнюю сборку. Я считаю, что это было исправлено.

...