如何在Azure Compute Emulator中调用RoleEntryPoint.OnStop()?

时间:2011-06-16 14:22:40

标签: windows debugging azure cloud azure-web-roles

我正在Azure Compute Emulator下测试一个简单的Web角色,并在我的类中覆盖了从OnStart()派生的Run()OnStop()RoleEntryPoint方法。

OnStart()Run()被调用但OnStop()不是 - 我将在Visual Studio中按“停止调试”或关闭浏览器窗口,角色将被终止,但{永远不会调用{1}}。我已经检查过了OnStop()定义中存在override关键字。

这不太方便 - 这意味着我无法在实时云外测试我的OnStop()

我可以以某种方式在我的角色中使用Compute Emulator调用OnStop()吗?

3 个答案:

答案 0 :(得分:6)

我怀疑(但我不确定),如果您打开计算模拟器UI并“停止”部署,则应调用OnStop()。

答案 1 :(得分:2)

您可以使用csrun更新正在运行的部署的配置。当您提供命令时,实例将调用OnStop()方法。

更新ServiceConfigure:

  • 通过命令行
  • 打开Azure SDK bin文件夹
  • 发出命令csrun.exe / update:{部署ID,只是数字}; {cscfg文件的路径}

在我的计算模拟器中它将是:

  • csrun.exe / update:252;“D:\ user \ My Documents \ Visual Studio 2010 \ Projects \ CSM \ CSC \ bin \ Debug \ ServiceConfiguration.cscfg”

答案 2 :(得分:1)

如果你故意退出Run()方法,我相信应该调用OnStop()。