Bagikan melalui


Pengecualian Azure Relay

Artikel ini mencantumkan beberapa pengecualian yang mungkin dihasilkan oleh API Azure Relay. Referensi ini dapat berubah, jadi periksa kembali untuk pembaruan.

Kategori pengecualian

API Relay menghasilkan pengecualian yang mungkin termasuk dalam kategori berikut. Juga tercantum adalah tindakan yang disarankan yang dapat Anda ambil untuk membantu menyelesaikan pengecualian.

Jenis pengecualian

Tabel berikut ini mencantumkan tipe pengecualian pesan dan penyebabnya. Tabel juga mencatat tindakan yang disarankan yang dapat Anda ambil untuk membantu menyelesaikan pengecualian.

Jenis pengecualian Keterangan Tindakan yang Disarankan Catatan tentang coba lagi otomatis atau segera
Timeout Server tidak menanggapi operasi yang diminta dalam waktu yang ditentukan, yang dikontrol oleh OperationTimeout. Server mungkin telah menyelesaikan operasi yang diminta. Hal ini dapat terjadi karena keterlambatan jaringan atau infrastruktur lainnya. Periksa status sistem untuk konsistensi, lalu coba lagi, jika perlu. Lihat TimeoutException. Coba lagi mungkin membantu dalam beberapa kasus; tambahkan logika coba lagi ke kode.
Operasi tidak sah Operasi pengguna yang diminta tidak diperbolehkan di dalam server atau layanan. Lihat pesan pengecualian untuk detailnya. Periksa kode dan dokumentasi. Pastikan bahwa operasi yang diminta valid. Coba lagi tidak membantu.
Operasi dibatalkan Upaya dilakukan untuk memanggil operasi pada objek yang telah ditutup, dibatalkan, atau dibuang. Dalam kasus yang jarang terjadi, transaksi sekitar sudah dibuang. Periksa kode dan pastikan kode tidak memanggil operasi pada objek yang sudah dibuang. Coba lagi tidak membantu.
Akses yang tidak diizinkan Objek TokenProvider tidak dapat memperoleh token, token tidak valid, atau token tidak berisi klaim yang diperlukan untuk melakukan operasi. Pastikan bahwa penyedia token dibuat dengan nilai yang benar. Periksa konfigurasi Layanan Kontrol Akses. Coba lagi mungkin membantu dalam beberapa kasus; tambahkan logika coba lagi ke kode.
Pengecualian Argumen,
Argumen Kosong,
Argumen Di Luar Rentang
Terjadi satu atau beberapa hal berikut ini:
Satu atau beberapa argumen yang diberikan ke metode ini tidak valid.
URI yang disediakan ke NamespaceManager atau Buat berisi satu atau beberapa segmen jalur.
Skema URI yang diberikan ke NamespaceManager atau Create tidak valid.
Nilai properti lebih besar dari 32 KB.
Periksa kode panggil dan pastikan argumennya benar. Coba lagi tidak membantu.
Server Sibuk Layanan tidak dapat memproses permintaan saat ini. Klien dapat menunggu jangka waktu tertentu, lalu mencoba kembali operasi. Klien mungkin mencoba kembali setelah interval tertentu. Jika mencoba kembali menghasilkan pengecualian yang berbeda, periksa perilaku coba lagi pengecualian tersebut.
Kuota Terlampaui Entitas olahpesan telah mencapai ukuran maksimum yang diperbolehkan. Buat ruang di entitas dengan menerima pesan dari entitas atau subque-nya. Lihat QuotaExceededException. Coba lagi mungkin membantu jika pesan telah dihapus sementara ini.
Ukuran Pesan Terlampaui Muatan pesan melebihi batas 256-KB. Perhatikan bahwa batas 256 KB adalah ukuran total pesan. Total ukuran pesan dapat mencakup properti sistem dan overhead Microsoft .NET apa pun. Kurangi ukuran payload pesan, lalu coba lagi operasi. Coba lagi tidak membantu.

QuotaExceededException

QuotaExceededException menunjukkan bahwa kuota untuk entitas tertentu telah terlampaui.

Untuk Relay, pengecualian ini membungkus System.ServiceModel.QuotaExceededException, yang menunjukkan bahwa jumlah maksimum pendengar telah terlampaui untuk titik akhir ini. Ini ditunjukkan dalam nilai MaximumListenersPerEndpoint dari pesan pengecualian.

TimeoutException

TimeoutException menunjukkan bahwa operasi yang dimulai pengguna memakan waktu lebih lama dari batas waktu operasi.

Periksa nilai properti ServicePointManager.DefaultConnectionLimit. Mencapai batas ini juga dapat menyebabkan TimeoutException.

Untuk Relay, Anda mungkin menerima pengecualian waktu habis saat pertama kali membuka koneksi pengirim relay. Ada dua penyebab umum untuk pengecualian ini:

  • Nilai OpenTimeout mungkin terlalu kecil (jika bahkan dengan sepersekian detik).
  • Pendengar relay di tempat mungkin tidak responsif (atau mungkin mengalami masalah aturan firewall yang melarang pendengar menerima koneksi klien baru), dan nilai OpenTimeout kurang dari sekitar 20 detik.

Contoh:

'System.TimeoutException’: The operation did not complete within the allotted timeout of 00:00:10.
The time allotted to this operation may have been a portion of a longer timeout.

Penyebab umum

Ada dua penyebab umum untuk kesalahan ini:

  • Konfigurasi yang salah

    Batas waktu operasi mungkin terlalu kecil untuk kondisi operasional. Nilai default untuk batas waktu operasi di SDK klien adalah 60 detik. Periksa untuk melihat apakah nilai dalam kode Anda diatur ke sesuatu yang terlalu kecil. Perhatikan bahwa penggunaan CPU dan kondisi jaringan dapat memengaruhi waktu yang diperlukan untuk menyelesaikan operasi. Ada baiknya untuk tidak mengatur batas waktu operasi ke nilai yang sangat kecil.

  • Kesalahan layanan sementara

    Terkadang, layanan Relay mungkin mengalami keterlambatan dalam memproses permintaan. Ini mungkin terjadi, misalnya, selama periode lalu lintas tinggi. Jika terjadi, coba lagi operasi Anda setelah penundaan, hingga operasi berhasil. Jika operasi yang sama terus gagal setelah beberapa upaya, periksa situs status layanan Azure untuk melihat apakah ada pemadaman layanan yang diketahui.

Koneksi ionLostException - NameRenewalFailed

Gejala

Klien Anda menerima pengecualian: Microsoft.Azure.Relay.ConnectionLostException : InternalServerError: NameRenewalFailed.

Penyebab

Layanan Azure Relay memulai ulang koneksi pendengar setiap 24 jam. Perilaku ini secara desain. Layanan Azure Relay memutuskan koneksi aktif pendengar setiap 24 jam, dan pendengar akan terhubung kembali dengan server menggunakan mekanisme coba lagi.

Resolusi

Tidak ada tindakan di bagian Anda karena pendengar secara otomatis terhubung kembali ke server. Jika Anda melihat bahwa pendengar Anda tidak tersambung lagi, kirimkan tiket ke tim dukungan.

Langkah berikutnya