5

我正在 Azure Compute Emulator 下测试一个微不足道的 Web 角色,并在我的类中重写了OnStart(),Run()和方法,这些方法派生自.OnStop()RoleEntryPoint

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

这不是很方便 - 这意味着我无法OnStop()在现场云之外测试我的。

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

4

3 回答 3

6

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

于 2011-06-16T17:34:55.950 回答
2

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

要更新 ServiceConfigure:

  • 通过命令行打开 Azure SDK bin 文件夹
  • 发出命令 csrun.exe /update:{Deployment ID, just the number};{cscfg 文件的路径}

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

  • 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 回答