Topik ini memberikan jawaban atas beberapa pertanyaan yang sering diajukan (FAQ) tentang penggunaan Alibaba Cloud SDK untuk .NET guna membantu meningkatkan efisiensi pengembangan.
Prasyarat
.NET Framework 4.5 atau lebih baru, atau .NET Core 2.0 atau lebih baru telah diinstal.
Ikhtisar
Pertanyaan 1: Bagaimana cara menangani kesalahan AccessKey?
Masalah: Pesan kesalahan berikut muncul saat menjalankan kode. Pesan tersebut menunjukkan bahwa pasangan AccessKey salah.
Alibaba Cloud SDK V2.0: Unhandled exception. Tea.TeaException: Harap atur kredensial dengan benar. Jika Anda mengaturnya melalui variabel lingkungan, pastikan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET diatur dengan benar.
Alibaba Cloud SDK V1.0: Unhandled exception. System.ArgumentOutOfRangeException: Argumen yang ditentukan berada di luar rentang nilai yang valid. (Parameter 'Access key ID tidak boleh null.')
Solusi:
Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah dikonfigurasi:
Linux atau macOS
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRETWindows
echo %ALIBABA_CLOUD_ACCESS_KEY_ID% echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%Jika pasangan AccessKey yang valid dikembalikan, variabel lingkungan telah dikonfigurasi dengan benar. Jika tidak ada pasangan AccessKey yang dikembalikan atau pasangan AccessKey yang dikembalikan tidak valid, konfigurasikan ulang variabel lingkungan. Untuk informasi lebih lanjut, lihat Konfigurasikan variabel lingkungan di Linux, macOS, dan Windows.
Periksa kesalahan terkait AccessKey dalam kode.
Contoh konfigurasi tidak valid:
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config { AccessKeyId = Environment.GetEnvironmentVariable("yourAccessKeyID"), AccessKeySecret = Environment.GetEnvironmentVariable("yourAccessKeySecret"), };Contoh konfigurasi valid:
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config { AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"), AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"), };CatatanEnvironment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID") dan Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET") menunjukkan bahwa nilai-nilai tersebut diperoleh dari variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
PentingUntuk mencegah kebocoran AccessKey, jangan tulis pasangan AccessKey dalam teks biasa langsung di kode Anda.
Pertanyaan 2: Apa yang harus saya lakukan jika pesan kesalahan "TimeoutException..." muncul?
Waktu habis panggilan API dapat disebabkan oleh beberapa faktor. Berikut adalah penyebab umum beserta solusinya.
Masalah konektivitas jaringan
Penyebab: Permintaan API tidak dapat mencapai server tujuan karena koneksi jaringan antara klien dan server gagal atau jaringan tidak stabil.
Solusi:
Gunakan perintah ping atau curl untuk menguji konektivitas antara host lokal dan titik akhir layanan cloud. Sebagai contoh, jika panggilan operasi API Layanan Pesan Singkat (SMS) mengalami waktu habis, jalankan perintah ping dysmsapi.aliyuncs.com atau curl -v https://dysmsapi.aliyuncs.com untuk menguji konektivitas jaringan.
Jika perintah mengalami waktu habis atau tidak ada respons yang dikembalikan, periksa apakah kebijakan blokir dikonfigurasi pada firewall atau router lokal.
Jika respons dikembalikan, kami sarankan Anda menentukan periode waktu habis yang sesuai untuk mencegah kegagalan permintaan yang disebabkan oleh konfigurasi yang tidak tepat. Untuk informasi lebih lanjut, lihat Konfigurasikan periode waktu habis. Contoh kode:
// Konfigurasikan periode waktu habis untuk permintaan koneksi menggunakan parameter runtime. Periode waktu habis hanya berlaku untuk permintaan yang menggunakan RuntimeOptions. RuntimeOptions runtimeOptions = new RuntimeOptions(); runtimeOptions.ConnectTimeout = connectionTimeoutMillis;
Waktu pemrosesan API request yang lama
Penyebab: Waktu untuk memproses permintaan API melebihi periode waktu habis baca yang ditentukan.
Solusi: Perpanjang periode waktu habis baca untuk respons API. Untuk informasi lebih lanjut, lihat Konfigurasikan periode waktu habis. Sebagai contoh, Anda dapat mengonfigurasi parameter waktu habis baca untuk memperpanjang periode waktu habis baca. Contoh kode:
// Konfigurasikan periode waktu habis untuk permintaan baca menggunakan parameter runtime. Periode waktu habis hanya berlaku untuk permintaan yang menggunakan RuntimeOptions.
RuntimeOptions runtimeOptions = new RuntimeOptions();
runtimeOptions.ReadTimeout = readTimeoutMillis;Pertanyaan 3: Apa yang harus saya lakukan jika pesan kesalahan "Unhandled exception. System.ArgumentNullException: Value cannot be null. (Parameter 'key')" muncul?
Modul Aliyun.Credentials sudah usang. Kami sarankan Anda memperbarui Aliyun.Credentials ke versi terbaru.
dotnet add package Aliyun.CredentialsDaftar periksa pengecualian dasar C#
Pesan kesalahan | Penyebab | Solusi |
SocketException | Kesalahan terkait soket terjadi. Sebagai contoh, koneksi mengalami waktu habis, atau koneksi ditutup. | Jalankan perintah cURL untuk memeriksa ketersediaan koneksi jaringan. Pastikan bahwa host tujuan dan nomor port benar. |
HttpRequestException | Kesalahan terkait permintaan HTTP terjadi. Sebagai contoh, server tidak dapat dihubungi atau permintaan mengalami waktu habis. | Periksa koneksi jaringan dan pastikan bahwa server sedang berjalan. Anda dapat menggunakan blok try-catch untuk menangkap dan menangani pengecualian ini. |
ProtocolViolationException | Kesalahan terkait protokol jaringan terjadi. Sebagai contoh, permintaan atau respons HTTP tidak valid. | Periksa protokol jaringan dan pastikan bahwa permintaan dan respons memenuhi persyaratan protokol. Anda dapat menggunakan pernyataan bersyarat atau mekanisme penanganan pengecualian untuk menangani pengecualian ini. |
TimeoutException | Operasi mengalami waktu habis. | Tingkatkan periode waktu habis atau optimalkan kinerja untuk memastikan bahwa operasi dapat selesai sebelum periode waktu habis yang ditentukan berakhir. Anda dapat menggunakan pernyataan bersyarat atau mekanisme penanganan pengecualian untuk menangani pengecualian ini. |
Kegagalan resolusi DNS | Nama domain tidak dapat diselesaikan atau tidak valid. | Periksa nama domain dan pastikan bahwa server DNS tersedia. Anda dapat menggunakan pernyataan bersyarat atau mekanisme penanganan pengecualian untuk menangani pengecualian ini. |
Dukungan teknis
Jika Anda mengalami masalah lain saat menggunakan Alibaba Cloud SDK, hubungi kami melalui cara berikut:
Jika Anda memiliki pertanyaan atau umpan balik, hubungi dukungan teknis di grup DingTalk 60965016010.