0

MVC アプリケーションと WCF サービスを備えた Azure Webrole があります。Webrole の「OnStart」メソッドで、IOC コンテナーを表す静的変数をインスタンス化します。

その後、外部サービス呼び出しを行ってコンテナを取得しようとすると、変数が null になっています...

何か不足していますか、それともサービスで静的を利用できないのはなぜですか?

問題がある場合は、Azure SDK 1.8 を実行しています

4

2 に答える 2

1

私はあなたが何を意味するか知っていると思います。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 つの異なるプロセスであるため)。

于 2013-01-04T06:48:34.490 に答える
0

WebRoleに2つのサイト/ロールがあります。1つはMVCアプリ用で、もう1つはWCFサービス用です(構成を確認してください)。同じWebRole(Cloud Service VM)で、それぞれエンドポイントが異なる2つの独立したアプリケーションを実行しています。アプリケーション間で静的リソースを共有することはできません。WCFサービスでもインスタンスをインスタンス化する必要があります。

于 2013-01-04T02:14:38.710 に答える