问题描述
|
我在Azure Compute Emulator下测试一个普通的Web角色,并在我的课程中重写了从
RoleEntryPoint
派生的OnStart()
,Run()
和OnStop()
方法。
called0ѭ和Run()
被调用,但OnStop()
不是-我将在Visual Studio中按\“ Stop debugging \”或关闭浏览器窗口,角色将终止,但是but2ѭ永不被调用。我已经检查过-OnStop()
定义中存在override
关键字。
那不是很方便-这意味着我无法在实时云之外测试我的OnStop()
。
我可以以某种方式使Compute Emulator呼叫OnStop()
吗?
解决方法
我怀疑(但不确定),如果您打开计算仿真器UI并在其中“停止”部署,则应调用OnStop()。
, 您可以使用csrun更新正在运行的部署的配置。当您给出命令时,实例将调用OnStop()方法。
要更新ServiceConfigure:
通过命令行打开Azure SDK bin文件夹
发出命令csrun.exe / update:{部署ID,仅数字}; {cscfg文件的路径}
在我的Compute Emulator中,它将是:
csrun.exe / update:252; \“ D:\\ user \\ My Documents \\ Visual Studio 2010 \\ Projects \\ CSM \\ CSC \\ bin \\ Debug \\ ServiceConfiguration.cscfg \”
, 如果您有意退出Run()方法,我相信应该调用OnStop()。