2

Castle Windsor に WcfFacility を使用して WCF を作成させようとしています。このチュートリアルに従いました。http://www.codeproject.com/Articles/426770/Dependency-Injection-in-WCF-using-Castle-Windsorしかし、私にはうまくいかないようです。次のエラーが表示されます。

ActionService.ServiceImplementations.ActionWebService という名前のコンポーネントが見つかりませんでした。登録するのを忘れましたか?

私のアプリケーションの構造は次のとおりです。

Web サービス用の 1 つのプロジェクト (分離コードのない svc ファイルのみ、web.config および global.asax)

契約と実装のための 2 番目のプロジェクト。これは、IActionWebService と ActionWebservice が存在する場所です。

私は後者の参照を最初のものに持っています。

これは私のグローバル asax です。

public class Global : System.Web.HttpApplication
{
    IWindsorContainer container;
    protected void Application_Start(object sender, EventArgs e)
    {
        container = new WindsorContainer();

        container.AddFacility<WcfFacility>()
            .Register(
            Component.For<IAuthService>().ImplementedBy<AuthService>(),
            Component.For<IUserRepository>().ImplementedBy<UserRepository>(),
            Component.For<IActionWebService>().ImplementedBy<ActionWebService>().Named("ActionWebService")
            );
    }

これが私の svc ファイルです。

    <%@ ServiceHost 
Language="C#" 
Debug="true" 
Service="ActionService.ServiceImplementations.ActionWebService"
Factory="Castle.Facilities.WcfIntegration.DefaultServiceHostFactory, Castle.Facilities.WcfIntegration" %>

私はすでにここや他のブログで他の質問をしましたが、それらの解決策は私にとって何の助けにもなりませんでした:(.

エラーが発生している可能性がある場所を指摘できる人はいますか?

EDITウォッチウィンドウのキャプチャを添付しました。すべてのオブジェクトがロードされているように見えることがわかります。しかし、それはそれらを解決しません。

ここでは、実際のオブジェクトがコンテナーに読み込まれていることがわかります。 それだけでは解決しません

4

2 に答える 2

1

同じエラーが発生しました

登録用の文字列パラメーターで解決するために、このような完全な名前空間を使用して配置しました。

protected void Application_Start(object sender, EventArgs e)
    {
        IWindsorContainer container = new WindsorContainer();

        container.AddFacility<WcfFacility>().Register(
          Component.For<IActivityLogsRepository>().ImplementedBy<ActivityLogsRepository>(),
            Component.For<IActivityLogsService>().ImplementedBy<ActivityLogsService>()
                .Named("Company.ServiceImplementation.ActivityLogsService"),

これがお役に立てば幸いです

于 2013-02-13T18:15:35.027 に答える