如何在Azure计算模拟器中调用RoleEntryPoint.OnStop()?

问题描述:

我在Azure计算模拟器下测试了一个简单的web角色,并且覆盖了我的类中从RoleEntryPoint派生的OnStart(),Run()OnStop()方法。如何在Azure计算模拟器中调用RoleEntryPoint.OnStop()?

OnStart()Run()被称为但是OnStop()是不是 - 我要么按“停止调试”在Visual Studio或关闭浏览器窗口和作用将被终止,但OnStop()不会被调用。我已检查 - override关键字存在于OnStop()的定义中。

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

我可以以某种方式使计算模拟器调用OnStop()在我的角色?

+0

从2012年11月起,您必须使用RoleEnvironment.RequestRecycle(); – RickAndMSFT 2012-11-18 22:31:40

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

+0

是的,那有效。 – sharptooth 2011-06-17 07:26:45

+1

这不再有效。调用RoleEnvironment.RequestRecycle();作品 – RickAndMSFT 2012-11-18 22:36:10

+1

据我可以告诉这是再次工作,虽然现在在模拟器用户界面中的选项是“暂停”或“重新启动”。 – user1454265 2015-04-23 20:02:38

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

+0

这可以工作,但需要编辑代码,而且既不重新启动也不终止。 – sharptooth 2011-06-17 07:27:30

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

要更新ServiceConfigure:

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

在我的计算仿真这将是:

  • csrun.exe /更新:252;“d:\使用r \ My Documents \ Visual Studio 2010 \ Projects \ CSM \ CSC \ bin \ Debug \ ServiceConfiguration.cscfg“