2011-04-18 2 views
0

WASでホストされているサービス(iis7でnet.tcpバインディング)でWCF機能を使用しています。HELP! - application_startupとコンテナの作成の前に実行されているDefaultServiceHostFactory

次の文は、コンテナの最初のインスタンス化時に実行する必要があります。

DefaultServiceHostFactory.RegisterContainer(c.Kernel); 

サービスが要求されたとき、私は私のWCFのトレースファイルに以下の例外を取得

カーネルは問題がに表示されます

)あなたはDefaultServiceHostFactory.RegisterContainerを(呼び出すのを忘れなかった、ヌルでしたコンテナが作成される前にServiceHostFactoryがサービスのホストのインスタンスを作成しようとしていることです。

注:予想通り、サービスが動作するアプリケーションが実行されている場合のApplication_Start

  • 実行される(及び容器が初期化されている)前に、この例外が起こっている

    • 。アプリケーションは、HTTP経由で適切なIISサイトに移動するか、Visual Studioからデバッグセッションを開始することで開始できます。

    ステップシャットダウンするすべてのIISアプリケーションプールを問題

    • 問題IISRESETを再作成します。
    • 質問
    • でサービスを呼び出すWCFトレースが吐き出す:

      System.ServiceModel.ServiceActivationException:サービス「/abcd.svc」は、コンパイル時に例外のために活性化することはできません。例外のメッセージは次のとおりです。呼び出しのターゲットによって例外がスローされました。--- > System.Reflection.TargetInvocationException:例外が呼び出しのターゲットによってスローされました。 --- > System.ArgumentNullException:カーネルがnullの場合、DefaultServiceHostFactory.RegisterContainer()を呼び出すことを忘れましたか? パラメータ名:Castle.Facilities.WcfIntegration.DefaultServiceHostFactory..ctorでCastle.Facilities.WcfIntegration.WindsorServiceHostFactory`1..ctor(のiKernelカーネル) でカーネル ()

  • +0

    私の状況をもっと説明したり、もっと明確にする必要があるかどうか教えてください。 –

    答えて

    1

    問題が世界的なことです。 asaxとそのすべてのメソッドはHTTP処理にのみ関連しています。 Btw。 global.asaxのクラスはHttpApplicationから派生しています。 WASでアプリケーションをホストすると(net.tcpベースのバインディングの場合)、これらのメソッドを使用することはできません。 AppInitializeのようなものを使用してください。