0

先週の時点で、github リポジトリの最新バージョン (windsor 2.5.2) の Wcf ファシリティを使用しています。

次のエラーをスローして動作していません(サービスの起動時)

バインディング WSHttpBinding を持つエンドポイントのスキーム http に一致するベース アドレスが見つかりませんでした。登録されているベース アドレス スキームは [] です。

ここにセットアップがあります

var container = new WindsorContainer(); 
        container.AddFacility<WcfFacility>()
            .Register(
            Component.For<IUnitOfWork>().ImplementedBy<UnitOfWork>().LifeStyle.PerWcfOperation(),
            Component.For<Session>().ImplementedBy<Session>().LifeStyle.PerWcfOperation(),
            Component.For<IService1>().ImplementedBy<Service1>().AsWcfService(new DefaultServiceModel()).LifeStyle.PerWcfOperation());

ウィンザーのものをすべて削除してバニラサービスに戻すと、正常に機能します。

エラーは、32 行目の「Castle.Facilities.WcfIntegration.DefaultServiceHost」でスローされます。

this.model = model;

ありがとう

骨格

4

1 に答える 1

1

起こっているように見えたのは、セットアップ時にCastleがサービスの作成を開始することでしたが、その時点ではベースアドレスが渡されていませんでした(観察、これは少し間違っている可能性があります)

開発者が使用した別の投稿を見つけました

Component.For<IService1>().ImplementedBy<Service1>().ActAs(new DefaultServiceModel().Hosted()).LifeStyle.PerWcfOperation()

うまくいくようです(簡単なビデオも撮りました

「これはサービスを登録する正しい方法ですか?」という唯一の質問だと思います。wiki とデモ アプリは、ビデオの例では機能しないさまざまな方法を示しています。

于 2011-03-23T00:05:23.207 に答える