5

Azure Compute Emulatorで簡単なWebロールをテストしていて、をオーバーライドOnStart()Run()ました。OnStop()クラス内のメソッドは、から派生していRoleEntryPointます。

OnStart()呼び出されRun()ますが、呼び出されOnStop()ません-Visual Studioで[デバッグの停止]を押すか、ブラウザーウィンドウを閉じると、役割は終了しますが、OnStop()呼び出されることはありません。チェックしました-overrideキーワードがOnStop()定義に存在します。

これはあまり便利ではありません。つまりOnStop()、ライブクラウドの外でテストすることはできません。

OnStop()どういうわけか、自分の役割でCompute Emulatorを呼び出すことはできますか?

4

3 に答える 3

6

コンピューティングエミュレーターのUIを開いて、そこで展開を「停止」すると、OnStop()が呼び出されるのではないかと思います(ただし、よくわかりません)。

于 2011-06-16T17:34:55.950 に答える
2

csrunを使用して、実行中のデプロイメントの構成を更新できます。コマンドを指定すると、インスタンスはOnStop()メソッドを呼び出します。

ServiceConfigureを更新するには:

  • コマンドラインからAzureSDKbinフォルダーを開きます
  • コマンドcsrun.exe/update:{デプロイメントID、番号のみ};{cscfgファイルのパス}を発行します

私のComputeEmulatorでは、次のようになります。

  • csrun.exe / update:252; "D:\ user \ My Documents \ Visual Studio 2010 \ Projects \ CSM \ CSC \ bin \ Debug \ ServiceConfiguration.cscfg"
于 2012-06-08T23:29:38.340 に答える
1

Run()メソッドを意図的に終了する場合は、OnStop()を呼び出す必要があると思います。

于 2011-06-16T15:24:01.017 に答える