Как вызвать RoleEntryPoint.OnStop () в эмуляторе вычислений Azure? - PullRequest
5 голосов
/ 16 июня 2011

Я тестирую тривиальную веб-роль в Azure Compute Emulator, и в моем классе переопределены методы OnStart(), Run() и OnStop(), производные от RoleEntryPoint.

OnStart() и Run() вызваны, но OnStop() нет - я либо нажму «Остановить отладку» в Visual Studio, либо закрою окно браузера, и роль будет прервана, но OnStop() никогда не вызывается. Я проверил - ключевое слово override присутствует в определении OnStop().

Это не очень удобно - это значит, что я не могу проверить свой OnStop() вне живого облака.

Могу ли я как-то сделать вызов Compute Emulator OnStop() в моей роли?

Ответы [ 3 ]

6 голосов
/ 16 июня 2011

Я подозреваю (но я не уверен), что если вы откроете пользовательский интерфейс эмулятора вычислений и "остановите" развертывание там, OnStop () должен быть вызван.

2 голосов
/ 09 июня 2012

Вы можете использовать csrun для обновления конфигурации текущего развертывания. Когда вы даете команду, экземпляр вызывает метод OnStop ().

Чтобы обновить ServiceConfigure:

  • Откройте папку bin Azure SDK через командную строку
  • Введите команду csrun.exe / update: {Идентификатор развертывания, только номер}; {Путь к файлу cscfg}

В моем эмуляторе вычислений это будет:

  • csrun.exe / update: 252; «D: \ user \ Мои документы \ Visual Studio 2010 \ Projects \ CSM \ CSC \ bin \ Debug \ ServiceConfiguration.cscfg"
1 голос
/ 16 июня 2011

Если вы намеренно выходите из метода Run (), я считаю, что OnStop () должен быть вызван.

...