2011-06-16 16 views
5

Azure Compute Emulator altında önemsiz bir web rolünü test ediyorum ve RoleEntryPoint'dan türeyen sınıfımda OnStart(), Run() ve OnStop() yöntemlerini geçersiz kıldım.Azure Compute Emulator'da RoleEntryPoint.OnStop() nasıl çağrılır?

OnStart() ve Run() denilen ama OnStop() değil edilir - Ben de basın Visual Studio "ayıklama Dur" veya tarayıcı penceresini kapatın ve rol sonlandırılır, ancak OnStop() asla denir. Kontrol ettik - anahtar kelimesi OnStop() tanımında bulunur.

Bu pek uygun değil - bu, OnStop() telefonumu canlı bir bulutun dışında test edemem anlamına gelir.

Bir şekilde görevimde bulunan Compute Emulator'ü OnStop() arayabilir miyim?

+0

Kasım 2012'den itibaren, RoleEnvironment.RequestRecycle(); – RickAndMSFT

cevap

6

Hesaplama öykünücüsü kullanıcı arabirimini açar ve buradaki dağıtımı "durdurur" durumunda, şüpheli (ancak emin değilim), OnStop() çağrılmalıdır.

+0

Evet, işe yarıyor. – sharptooth

+1

Bu artık çalışmıyor. RoleEnvironment.RequestRecycle() çağrısı; – RickAndMSFT

+1

çalışır. Bunun çalıştığını söyleyebildiğim kadarıyla, seçenekler artık emülatör kullanıcı arayüzünde "Askıya Al" veya "Yeniden Başlat" olmakla birlikte. – user1454265

1

Kasıtlı olarak Run() yönteminden çıktığınızda, OnStop() yönteminin çağrılması gerektiğine inanıyorum.

+0

Bu çalışır, ancak düzenleme kodu ve ayrıca yeniden başlatılmamış olan rolü de bundan sonra sonlandırmaz. – sharptooth

2

Çalışan bir dağıtımın yapılandırmasını güncellemek için csrun uygulamasını kullanabilirsiniz. Komutu verdiğinizde, örnek OnStop() yöntemini çağırır. arasında {Path {Dağıtım kimlik, sadece numara}:

  • Açık komut satırı
  • Sayı komut csrun.exe/güncelleme yoluyla Azure SDK bin klasörü:

    ServiceConfigure güncellemek için cscfg dosyası} benim Compute Emulator yılında

olurdu:

  • csrun.exe/güncelleme: 252; "D: \ kullanımı r \ Belgelerim \ Visual Studio 2010 \ Projects \ CSM \ CSC \ bin \ Hata Ayıklama \ ServiceConfiguration.cscfg "