質問

既存のサイトを変換して、WCFを使用して別のボックス上のサービスと通信しようとしています。現在、自動登録を使用してサービスを直接接続しています。 WindsorのWcfFacilityを使用しようとすると、登録しようとしているインターフェイスの1つでComponentRegistrationExceptionが発生します。エラーは以下のとおりです。特定のインターフェイスでのみ発生し、他のすべてのインターフェイスは正しく動作し、同じ方法でコーディングされています。

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

同じサービスでWCFを使用するように変換した別のWindowsフォームアプリケーションがあり、これは100%動作します。

次のコードを使用して、WindowsおよびWebアプリの両方でWCFサービスを登録します。

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

インターフェースはServiceContractおよびOperationContract属性でマークされ、他のすべてのものと同じです。

Windsorがこれを抽象クラスと見なしているが、もう一方を正しく登録している理由がわかりません。

アイデアはありますか

役に立ちましたか?

解決

この問題を解決しました。WebアプリでWCFFacilityを登録するコード行を何らかの形で削除しましたが、Windowsアプリでもまだ持っていたため、そこで動作していた理由を説明しています。私はばかだ...ようだ...

これは、その例外に遭遇し、私と同じくらいばかであるすべての人に役立つことを願っています:

とにかく助けてくれてありがとう。

他のヒント

最新のビルドを入手します。これは修正されたと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top