Bagikan melalui


Masalah umum yang menyebabkan peran Azure Cloud Service (klasik) didaur ulang

Penting

Cloud Services (klasik) sekarang tidak digunakan lagi untuk semua pelanggan per 1 September 2024. Setiap penyebaran yang sedang berjalan akan dihentikan dan dimatikan oleh Microsoft dan data akan hilang secara permanan mulai Oktober 2024. Penyebaran baru sebaiknya menggunakan Azure Resource Manager yang baru berdasarkan model penyebaran Azure Cloud Services (dukungan tambahan).

Artikel ini membahas beberapa penyebab umum masalah penyebaran dan memberikan tips pemecahan masalah untuk membantu Anda memecahkan masalah ini. Indikasi bahwa ada masalah dengan aplikasi adalah ketika instans peran gagal dimulai, atau berputar antara keadaan inisialisasi, sibuk, dan berhenti.

Jika masalah Azure Anda tidak diatasi dalam artikel ini, kunjungi forum Azure di Microsoft Q & A dan Stack Overflow. Anda dapat memposting masalah Anda di forum ini, atau memposting ke @AzureSupport di Twitter. Anda juga dapat mengirimkan permintaan dukungan Azure. Untuk mengirimkan permintaan dukungan, pada halaman dukungan Azure, pilih Dapatkan dukungan.

Tidak ada dependensi runtime

Jika peran dalam aplikasi Anda bergantung pada rakitan apa pun yang bukan bagian dari .NET Framework atau pustaka terkelola Azure, Anda harus secara eksplisit menyertakan rakitan tersebut dalam paket aplikasi. Perlu diingat bahwa kerangka kerja Microsoft lainnya tidak tersedia di Azure secara default. Jika peran Anda bergantung pada kerangka kerja seperti itu, Anda harus menambahkan perakitan tersebut ke paket aplikasi.

Sebelum Anda membuat dan mengemas aplikasi, verifikasi bahwa pernyataan berikut ini benar:

  • Jika menggunakan Visual studio, pastikan properti Salin Lokal diatur ke True untuk setiap rakitan yang dirujuk dalam proyek Anda yang bukan bagian dari Azure SDK atau .NET Framework.
  • Pastikan file web.config tidak mereferensikan rakitan yang tidak digunakan dalam elemen kompilasi.
  • Tindakan Build dari setiap file .cshtml diatur ke Konten. Pengaturan ini memastikan bahwa file muncul dengan benar dalam paket dan memungkinkan file referensi lainnya muncul dalam paket.

Perakitan menargetkan platform yang salah

Azure adalah lingkungan 64-bit. Oleh karena itu, rakitan .NET yang dikompilasi untuk target 32-bit tidak kompatibel dengan Azure.

Peran melemparkan pengecualian tidak tertangani saat menginisialisasi atau menghentikan

Setiap pengecualian yang dilemparkan oleh metode kelas RoleEntryPoint , yang mencakup metode OnStart, OnStop, dan Run , adalah pengecualian yang tidak tertangani. Jika pengecualian yang tidak tertangani terjadi di salah satu metode ini, peran akan didaur ulang. Jika peran didaur ulang berulang kali, peran tersebut mungkin melemparkan pengecualian yang tidak tertangani setiap kali mencoba untuk memulai.

Peran kembali dari metode Jalankan

Metode Jalankan dimaksudkan untuk berjalan tanpa batas waktu. Jika kode Anda mengambil alih metode Jalankan, kode tersebut akan tidur tanpa batas waktu. Jika metode Jalankan kembali, peran akan didaur ulang.

Pengaturan DiagnosticsConnectionString salah

Jika aplikasi menggunakan Azure Diagnostics, file konfigurasi layanan Anda harus menentukan pengaturan konfigurasi DiagnosticsConnectionString. Pengaturan ini harus menentukan koneksi HTTPS ke akun penyimpanan Anda di Azure.

Untuk memastikan bahwa pengaturan Anda DiagnosticsConnectionString sudah benar sebelum Anda menyebarkan paket aplikasi ke Azure, verifikasi bahwa pernyataan berikut ini benar:

  • Pengaturan DiagnosticsConnectionString menunjuk ke akun penyimpanan yang valid di Azure.
    Secara default, pengaturan ini menunjuk ke akun penyimpanan yang ditiru, jadi Anda harus secara eksplisit mengubah pengaturan ini sebelum Anda menyebarkan paket aplikasi Anda. Jika Anda tidak mengubah pengaturan ini, pengecualian akan dilemparkan saat instans peran mencoba memulai monitor diagnostik. Kejadian ini dapat menyebabkan instans peran mendaur ulang tanpa batas waktu.
  • String koneksi ditentukan dalam format berikut. (Protokol harus ditentukan sebagai HTTPS.) Ganti MyAccountName dengan nama akun penyimpanan Anda, dan MyAccountKey dengan kunci akses Anda:
DefaultEndpointsProtocol=https;AccountName=MyAccountName;AccountKey=MyAccountKey

Jika Anda mengembangkan aplikasi dengan menggunakan Azure Tools untuk Microsoft Visual Studio, Anda dapat menggunakan halaman properti untuk mengatur nilai ini.

Sertifikat yang diekspor tidak menyertakan kunci privat

Untuk menjalankan peran web di bawah Keamanan Lapisan Transportasi (TLS), Anda harus memastikan bahwa sertifikat manajemen yang diekspor menyertakan kunci privat. Jika Anda menggunakan Manajer Sertifikat Windows untuk mengekspor sertifikat, pastikan untuk memilih Ya untuk opsi Ekspor kunci privat. Sertifikat harus diekspor dalam format .pfx, yang merupakan satu-satunya format yang saat ini didukung.

Langkah berikutnya

Lihat artikel pemecahan masalah lainnya untuk layanan awan.

Lihat skenario daur ulang peran lainnya di seri blog Kevin Williamson.