2

既存のサイトを 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 属性でマークされており、他のすべてのものと同じです。

ウィンザーがこれを抽象クラスと見なしているのに、他のクラスを正しく登録している理由がわかりません。

何か案は?

4

2 に答える 2

3

この問題は解決しました。WCFFacilityをWebアプリに登録するコード行を削除したようですが、Windowsアプリにはまだ残っているため、そこで機能していた理由がわかります。私はばかみたいです...まあ。

うまくいけば、これはその例外に遭遇し、私と同じくらい馬鹿である人を助けるでしょう:)

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

于 2009-05-05T12:02:07.660 に答える
1

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

于 2009-05-05T09:31:02.047 に答える