Başlatılmayen Azure Cloud Services (genişletilmiş destek) rol örnekleriyle ilgili sorunları giderme
Bu makalede, Azure Cloud Services (genişletilmiş destek) rol örneklerinde başlatma hatalarının nasıl giderılacağı açıklanır.
Sorun giderme denetim listesi
Rol örneklerinde oluşan sorunları tanılamak için aşağıdaki seçeneklerden birini belirleyin.
1. Seçenek: Özel hataları kapatma
Tam hata bilgilerini görüntülemek için web rolünün Web.config dosyasını açın, özel hata modunu olarak Off
ayarlayın ve ardından hizmeti yeniden dağıtın:
Visual Studio'da çözümü açın.
Çözüm Gezgini Web.configdosyasını açın.
system.web
bölümünde aşağıdaki XML kodunu ekleyin:<customErrors mode="Off" />
Dosyayı kaydedin.
Hizmeti yeniden paketleme ve yeniden dağıtma.
Hizmet yeniden dağıtıldıktan sonra, hizmet hakkında alabileceğiniz hata iletileri eksik derlemelerin veya DLL'lerin adlarını içerir.
Seçenek 2: Rol örneği durumunu görüntülemek için PowerShell kullanma
Rol örneğinin çalışma zamanı durumu hakkında bilgi almak için Get-AzCloudServiceRoleInstanceView cmdlet'ini çalıştırın:
$roleInstanceView = @{
CloudServiceName = "<cloud-service-name>"
ResourceGroupName = "<resource-group-name>"
RoleInstanceName = "WebRole1_IN_0"
}
Get-AzCloudServiceRoleInstanceView @roleInstanceView
Rol örneğinin durumu, aşağıdaki örnek çıktıda gösterildiği gibi ilk sütunda listelenir:
Statuses PlatformFaultDomain PlatformUpdateDomain
-------- ------------------- --------------------
{RoleStateStarting} 0 0
Seçenek 3: Rol örneği durumunu görüntülemek için Azure portal kullanın
Azure portal bir rol örneğiyle ilgili durum bilgilerini görüntülemek için şu adımları izleyin:
Azure portal, Bulut hizmetleri (genişletilmiş destek) için arama yapın ve seçin.
Bulut hizmetleri listesinde bulut hizmetinizin adını seçin.
Menü bölmesinde Ayarlar'ın altına bakın ve ardından Roller ve Örnekler'i seçin.
Rol örneğinin adını seçin.
Rol örneği bölmesinde, Durum alanındaki rol örneğinin durumunu not edin.
Seçenek 4: Hata bilgilerini görüntülemek için Uzak Masaüstü'nü kullanma
Role erişmek ve tüm hata bilgilerini görüntülemek için aşağıdaki adımları izleyerek Uzak Masaüstü Protokolü'nü (RDP) kullanın:
Azure Cloud Services (genişletilmiş destek) için Uzak Masaüstü uzantısını ekleyin.
Azure portal, bulut hizmeti örneği Hazır durumu gösterdiğinde, bulut hizmetinde oturum açmak için Uzak Masaüstü'nü kullanın. Daha fazla bilgi için bkz. Uzak Masaüstü kullanarak rol örneklerine bağlanma.
Uzak Masaüstü'nü ayarlamak için kullandığınız kimlik bilgilerini kullanarak sanal makinede (VM) oturum açın.
Bir Komut İstemi penceresi açın.
ipconfig komutunu çalıştırın. IPv4 adresi için döndürülen değeri kopyalayın.
Bir web tarayıcısı açın.
Adres çubuğuna IPv4 adresini yapıştırın ve ardından bir eğik çizgi ve web uygulaması varsayılan dosyasının adını ekleyin. Örneğin,
http://<ipv4-address>/default.aspx
.
Şimdi web sitesine giderseniz daha fazla bilgi içeren hata iletileri görürsünüz. İşte bir örnek:
'/' Uygulamasında Sunucu Hatası.
'Microsoft.WindowsAzure.StorageClient, Version=1.1.0.0, Culture=neutral, PublicKeyToken=<16-digit-hexadecimal-string>' dosyası veya derlemesi veya bağımlılıklarından biri yüklenemedi. Sistem belirtilen dosyayı bulamıyor.
Açıklama: Geçerli web isteğinin yürütülmesi sırasında işlenmeyen bir özel durum oluştu. Hata ve kodun kaynağı hakkında daha fazla bilgi için lütfen yığın izlemesini gözden geçirin.
Özel Durum Ayrıntıları: System.IO.FileNotFoundException
Seçenek 5: İşlem Öykünücüsü'yü kullanma
Eksik bağımlılıklar ve Web.config hatalarıyla ilgili sorunları tanılamak ve gidermek için Azure İşlem Öykünücüsü'ni kullanabilirsiniz. Sorunları tanılamak için bu yöntemi kullandığınızda en iyi sonuçları elde etmek için, temiz bir Windows yüklemesi olan bir bilgisayar veya VM kullanın.
Azure İşlem Öykünücüsü'ni kullanarak sorunları tanılamak için:
Azure SDK'sını yükleyin.
Geliştirme bilgisayarında bulut hizmeti projesini oluşturun.
Dosya Gezgini bulut hizmeti projesinde bin\debug klasörüne gidin.
.csx klasörünü ve .cscfg dosyasını, sorunlarda hata ayıklamak için kullandığınız bilgisayara kopyalayın.
Temiz bilgisayarda bir Azure SDK Komut İstemi penceresi açın.
Komut isteminde aşağıdaki
csrun
komutu çalıştırın:csrun.exe /devstore:start
Aşağıdaki komutu çalıştırın:
run csrun <path-to-.csx-folder> <path-to-.cscfg-file> /launchBrowser
Rol başladığında, web tarayıcısı ayrıntılı hata bilgilerini görüntüler.
Daha fazla tanılama gerekiyorsa standart Windows sorun giderme araçlarını kullanabilirsiniz.
Seçenek 6: IntelliTrace kullanma
Not
Visual Studio 2022'de IntelliTrace kullanamazsınız. Visual Studio 2019, 2017 veya 2015 kullanıyorsanız IntelliTrace hala kullanılabilir.
.NET Framework 4 kullanan çalışan ve web rolleri için IntelliTrace kullanabilirsiniz. IntelliTrace, Visual Studio Enterprise'de kullanılabilir.
IntelliTrace açıkken bulut hizmetinizi dağıtmak için:
Azure SDK 1.3 veya sonraki bir sürümün yüklü olduğunu doğrulayın.
Visual Studio'da çözümü dağıtın. Dağıtımı ayarlarken .NET 4 rolleri için IntelliTrace'i etkinleştir onay kutusunu seçin.
Rol örneği başlatıldıktan sonra Sunucu Gezgini'ni açın.
Azure\Cloud Services düğümünü genişletin.
Rol örneklerini listelemek için dağıtımı genişletin. Ardından bir rol örneğine sağ tıklayın.
IntelliTrace günlüklerini görüntüle'yi seçin.
IntelliTrace Özeti'ndeÖzel Durum Verileri'ne gidin ve bu düğümü genişletin.
Özel durumlar listesinde, System.IO.FileNotFoundExceptionTür sütun değerini içeren bir satır bulun. İlgili İleti sütun değeri aşağıdaki metne benzemelidir:
'Microsoft.WindowsAzure.StorageClient, Version=1.1.0.0, Culture=neutral, PublicKeyToken=<16-digit-hexadecimal-string>' dosyası veya derlemesi veya bağımlılıklarından biri yüklenemedi. Sistem belirtilen dosyayı bulamıyor.
Neden 1: RoleInstanceStartupTimeoutError nedeniyle bulut hizmeti işlemi başarısız oluyor
Azure Cloud Services'daki rol örneklerinden biri veya daha fazlası (genişletilmiş destek) yavaş başlatılabilir. Ya da rol örneğinin geri dönüştürülmesi veya meşgul durumda takılması ve beklendiği gibi başlatılmaması olabilir. Bu durumda rol RoleInstanceStartupTimeoutError
uygulaması hata iletisi görüntülenir.
Rol uygulaması, rol geri dönüşümüne neden olabilecek iki bölüm içerir:
- Başlangıç görevleri
- Rol kodu (RoleEntryPoint Uygulaması)
Rol durursa hizmet olarak platform (PaaS) aracısı rolü yeniden başlatır.
Sorunun başlangıç görevinden kaynaklanıp kaynaklanmamış olduğunu belirlemek için şu adımları izleyin:
Sorunlu rol örneğine bağlanmak için Uzak Masaüstü'nü kullanmayı deneyin.
Rol örneğine bağlandıktan sonra Başlat'ı seçin ve ardından Görev Yöneticisi'ni arayıp seçin.
İşlemlerin listesini görmek için Görev Yöneticisi'ndeAyrıntılar sekmesini seçin.
WaIISHost.exe (WebRole için) veya WaWorkerHost.exe (WorkerRole için) için işlemler olup olmadığını denetleyin. Bu işlemlerin her ikisi de eksikse, büyük olasılıkla bir başlangıç görevi başarısız oluyordur.
Sorunun bir başlangıç görevinden kaynaklandığını doğrulayabildiniz mi? Bu durumda aşağıdaki çözümü uygulayabilirsiniz. Ancak, çözüm yalnızca başlangıç görevi basit veya ön plan göreviyse kullanılabilir. Çözüm, arka plan başlangıç görevleri için geçerli değildir. Bunlar, rolün başlangıcıyla paralel olarak zaman uyumsuz olarak çalıştırılır.
Çözüm: Başlangıç görevi betiğinde hata ayıklama
Başlangıç görevi hatasını gidermek için VM başlatma sırasında çalışan betiğin hatalarını ayıklayabilirsiniz. Bu başlangıç görevi betiği Startup.cmd dosyasıdır. Betikteki sorunları araştırmanıza yardımcı olmak için aşağıdaki seçeneklerden birini belirleyebilirsiniz:
C:\Resources\WaHostBootstrapper.log günlük dosyasını görüntüleyin. Bu dosya, WaHostBootstrapper.exe işleminin günlüğüdür. Bu işlem başlangıç görevlerinin sorumluluğundadır. Bu, Windows Azure klasik VM mimarisinin iş akışında açıklanmıştır. Ardından, Startup.cmd çalıştırmayı içeren herhangi bir hatayı veya özel durumu arayın. Özellikle çıkış kodunun 0 olup olmadığını doğrulayın. Değilse, başlangıç görevi tamamlandı ancak hatalar var. Betiğin çıkış koduyla ilgili günlükler yoksa, başlatma görevi çalışmaya devam eder.
Beklenen iş etkisi nedeniyle başlangıç görevi betiği üretim ortamında serbestçe çalıştırılamıyorsa, komut satırında günlüğe kaydetme mekanizmasını özelleştirin. Örneğin, bir betik komutundaki anahtar bilgilerinin çıkışını bir dosyaya yeniden yönlendirebilirsiniz. Bunu yapmanızın bir yolu, komutun sonuna eklemektir
> "%TEMP%\StartupLog.txt"
.Komut satırında, başlangıç görevi betiğini el ile çalıştırın. WebRole veya WorkerRole rolleri için bu betiğin konumları aşağıdaki tabloda gösterilmiştir.
Rol Betik konumu WebRole E:\approot\bin\Startup.cmd WorkerRole E:\approot\Startup.cmd
Neden 2: DLL'ler veya derlemeler eksik
Durumlar arasında geçiş yapılan yanıt vermeyen rol örnekleri ve rol örnekleri eksik DLL'lerden veya derlemelerden kaynaklanabilir.
Eksik DLL'lerin veya derlemelerin bazı belirtileri şunlardır:
Rol örneğiniz Başlatma, Meşgul ve Durduruluyor durumlarında döngü oluşturur.
Rol örneğiniz Hazır durumuna taşındı, ancak sayfa web uygulamanızda görünmüyor.
Bir web sitesi bir web rolünde dağıtılıyorsa ve bir DLL eksikse, aşağıdaki sunucu çalışma zamanı hata iletisini görüntüleyebilir.
'/' Uygulamasında Sunucu Hatası.
Çalışma Zamanı Hatası
Açıklama: Sunucuda bir uygulama hatası oluştu. Bu uygulamanın geçerli özel hata ayarları, uygulama hatasının ayrıntılarının uzaktan görüntülenmesini engeller (güvenlik nedenleriyle). Ancak, yerel sunucu makinesinde çalışan tarayıcılar tarafından görüntülenebilir.
Şey: Bu özel hata iletisinin ayrıntılarının uzak makinede görüntülenebilmesini sağlamak için lütfen geçerli web uygulamasının kök dizininde bulunan "web.config" yapılandırma dosyası içeren bir etiket oluşturun
<customErrors>
. Bu<customErrors>
etiketin "" özniteliği "mode
Off
" olarak ayarlanmalıdır.
Çözüm: Eksik DLL'leri ve derlemeleri çözme
Eksik DLL'lerin ve derlemelerin hatalarını çözmek için:
Visual Studio'da çözümü açın.
Çözüm Gezgini'da Başvurular klasörünü açın.
Hata iletisinde tanımlanan derlemeyi seçin.
Özellikler'deYereli Kopyala özelliğini True olarak ayarlayın.
Bulut hizmetini yeniden dağıtın.
Hataların artık görünmediğini doğruladıktan sonra hizmeti yeniden dağıtın. Dağıtımı ayarlarken .NET 4 rolleri için IntelliTrace'i etkinleştir onay kutusunu seçmeyin.
Sonraki adımlar
- Azure PaaS bilgisayar tanılama verilerini kullanarak bulut hizmeti rolü sorunlarını gidermeyi öğrenin.
Daha fazla bilgi
Klasik Bulut Hizmeti'ndeki başlangıç görevlerine ilişkin ilk yapılandırma, yürütme ve örnekler hakkında bilgi için aşağıdaki makalelere bakın:
- Azure Bulut Hizmeti için başlangıç görevlerini yapılandırma ve çalıştırma (klasik)
- Common Cloud Service (klasik) başlangıç görevleri
Yardım için bize ulaşın
Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin