Jon*_*ski 7 azure azure-worker-roles
我正在开发一个辅助角色故障转移解决方案,我需要能够通过关闭或重新启动实例以及创建新实例来测试和调试故障转移机制.
如何在本地Azure模拟器上重新启动或关闭特定实例?我正在使用1.7 SDK
谢谢,
我不得不在这里不同意大卫的回答.您可以执行一些操作来关闭实例或创建新实例.
在模拟器中运行应用程序时,它会为每个实例启动1个Web角色(WaIISHost.exe)/辅助角色(WaWorkerHost.exe)进程:

当你杀死其中一个进程时,就好像你杀死了一个实例.切换回模拟器后,您将看到您杀死的特定实例的图标改变了颜色,日志将显示实例的状态为Unknown/Destroyed:

附加调试器后,您将看到这种情况发生,实例将永远不会重新启动,允许您测试突然松开一个或多个实例的情况.如果没有附加调试器,这将全部发生得非常快,实例将立即重启(在Visual Studio中,您可以选择在没有调试的情况下启动).
使用csrun.exe(通常位于C:\ Program Files\Microsoft SDKs\Windows Azure\Emulator中),您可以在模拟器中更新服务的配置,包括实例数.假设我想在我目前的4个实例中添加6个实例.
我打开位于Azure项目的Debug文件夹中的ServiceConfiguration.cscfg文件(..\Some\Path\MultipleInstancesDemo\MultipleInstancesDemo\bin\Debug)并将实例数更改为10:
<ServiceConfiguration serviceName="MultipleInstancesDemo" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="1" osVersion="*" schemaVersion="2012-05.1.7">
<Role name="MyWebRole">
<Instances count="10" />
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
</ConfigurationSettings>
</Role>
</ServiceConfiguration>
Run Code Online (Sandbox Code Playgroud)
然后,通过向csrun.exe提供部署ID和配置文件的路径,可以将其推送到模拟器.您将在模拟器中找到部署ID.在上一个屏幕截图中,您将看到deployment17(20),这意味着部署ID为20.这就是你如何调用csrun.exe:csrun/update:20;"...Some\Path\MultipleInstancesDemo•MultipleInstancesDemo\bin\Debug\SeviceConfiguration.cscfg"
几秒钟后,您将在模拟器中看到新实例:

注意!:此处似乎只有在没有调试的情况下启动项目时才会起作用.
| 归档时间: |
|
| 查看次数: |
1493 次 |
| 最近记录: |