MVC アプリケーションと WCF サービスを備えた Azure Webrole があります。Webrole の「OnStart」メソッドで、IOC コンテナーを表す静的変数をインスタンス化します。
その後、外部サービス呼び出しを行ってコンテナを取得しようとすると、変数が null になっています...
何か不足していますか、それともサービスで静的を利用できないのはなぜですか?
問題がある場合は、Azure SDK 1.8 を実行しています
MVC アプリケーションと WCF サービスを備えた Azure Webrole があります。Webrole の「OnStart」メソッドで、IOC コンテナーを表す静的変数をインスタンス化します。
その後、外部サービス呼び出しを行ってコンテナを取得しようとすると、変数が null になっています...
何か不足していますか、それともサービスで静的を利用できないのはなぜですか?
問題がある場合は、Azure SDK 1.8 を実行しています
私はあなたが何を意味するか知っていると思います。WebRole.cs クラスで IOC コンテナーを初期化し、その後、同じWeb Roleインスタンスでホストされている WCF サービスまたは MVC アプリケーションで使用しようとします。
まあ、それは不可能です。WebRole.cs で実行されているコードは、実際の Web アプリケーション (w3wp.exe の MVC Web サイト/WCF サービス) とは異なるプロセス (WaIISHost.exe) で実行されることを知っておく必要があります。
これについては、こちらで詳しく説明しています。
Web アプリケーションの IOC コンテナーを初期化する場合は、Global.asax ファイルでこれを行う必要があります。また、WebRole.cs で IOC コンテナーも使用する場合 (Web アプリケーションの開始前に何らかの作業を行うため)、WebRole.cs ファイルで初期化する必要もあります (これらは 2 つの異なるプロセスであるため)。
WebRoleに2つのサイト/ロールがあります。1つはMVCアプリ用で、もう1つはWCFサービス用です(構成を確認してください)。同じWebRole(Cloud Service VM)で、それぞれエンドポイントが異なる2つの独立したアプリケーションを実行しています。アプリケーション間で静的リソースを共有することはできません。WCFサービスでもインスタンスをインスタンス化する必要があります。