すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud SDK:FAQ

最終更新日:Apr 16, 2025

このトピックでは、Alibaba Cloud SDK for .NET の使用に関するよくある質問 (FAQ) への回答を提供し、開発効率の向上に役立てます。

前提条件

.NET Framework 4.5 以降、または .NET Core 2.0 以降がインストールされていること。

概要

質問 1: AccessKey エラーをどのように処理すればよいですか?

問題: コードを実行すると、次のエラーメッセージが返されます。このエラーメッセージは、AccessKey ペアが正しくないことを示しています。

  • Alibaba Cloud SDK V2.0: Unhandled exception. Tea.TeaException: Please set up the credentials correctly. If you are setting them through environment variables, please ensure that ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set correctly.

  • Alibaba Cloud SDK V1.0: Unhandled exception. System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'Access key ID cannot be null.')

解決策:

  1. 次のコマンドを実行して、ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数と ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が構成されているかどうかを確認します。

    Linux または macOS

    echo $ALIBABA_CLOUD_ACCESS_KEY_ID
    echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET

    Windows

    echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
    echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%

    有効な AccessKey ペアが返された場合、環境変数は正しく構成されています。 AccessKey ペアが返されない場合、または返された AccessKey ペアが無効な場合は、環境変数を再構成します。 詳細については、「Linux、macOS、および Windows で環境変数を構成する」をご参照ください。

  2. コードで AccessKey 関連のエラーを確認します。

    無効な構成の例:

     AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
                {
                    AccessKeyId = Environment.GetEnvironmentVariable("yourAccessKeyID"),
                    AccessKeySecret = Environment.GetEnvironmentVariable("yourAccessKeySecret"),
                };

    有効な構成の例:

     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"),
                };
    説明

    Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID") と Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET") は、値が ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数と ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数から取得されることを示します。

    重要

    AccessKey の漏洩を防ぐため、AccessKey ペアをプレーンテキストでコードに直接書き込まないでください。

質問 2: 「TimeoutException...」エラーメッセージが返された場合はどうすればよいですか?

API 呼び出しのタイムアウトは、複数の要因によって発生する可能性があります。 次のセクションでは、一般的な原因と対応する解決策について説明します。

ネットワーク接続の問題

原因: クライアントとサーバー間のネットワーク接続が失敗したか、ネットワークが不安定なため、API リクエストが宛先サーバーに到達できません。

解決策:

ping コマンドまたは curl コマンドを使用して、オンプレミスホストとクラウドサービスのエンドポイント間の接続をテストします。 たとえば、ショートメッセージサービス (SMS) API 操作の呼び出しがタイムアウトになった場合は、ping dysmsapi.aliyuncs.com コマンドまたは curl -v https://dysmsapi.aliyuncs.com コマンドを実行して、ネットワーク接続をテストします。

  • コマンドがタイムアウトになった場合、または応答が返されない場合は、オンプレミスのファイアウォールまたはルーターでブロックポリシーが構成されているかどうかを確認します。

  • 応答が返された場合は、不適切な構成によってリクエストが失敗するのを防ぐために、適切なタイムアウト期間を指定することをお勧めします。 詳細については、「タイムアウト期間を構成する」をご参照ください。 サンプルコード:

    // ランタイムパラメータを使用して、接続リクエストのタイムアウト期間を構成します。 タイムアウト期間は、RuntimeOptions を使用するリクエストに対してのみ有効です。
    RuntimeOptions runtimeOptions = new RuntimeOptions();
    runtimeOptions.ConnectTimeout = connectionTimeoutMillis;

API リクエストの処理時間が長い

原因: API リクエストの処理時間が、指定された読み取りタイムアウト期間を超えています。

解決策: API 応答の読み取りタイムアウト期間を延長します。 詳細については、「タイムアウト期間を構成する」をご参照ください。 たとえば、読み取りタイムアウトパラメータを構成して、読み取りタイムアウト期間を延長できます。 サンプルコード:

// ランタイムパラメータを使用して、読み取りリクエストのタイムアウト期間を構成します。 タイムアウト期間は、RuntimeOptions を使用するリクエストに対してのみ有効です。
RuntimeOptions runtimeOptions = new RuntimeOptions();
runtimeOptions.ReadTimeout = readTimeoutMillis;

質問 3: 「Unhandled exception. System.ArgumentNullException: Value cannot be null. (Parameter 'key')」エラーメッセージが返された場合はどうすればよいですか?

Aliyun.Credentials モジュールが古くなっています。 Aliyun.Credentials を最新バージョンにアップグレードすることをお勧めします。

dotnet add package Aliyun.Credentials

基本的な C# 例外のチェックリスト

エラーメッセージ

原因

解決策

SocketException

ソケット関連のエラーが発生しました。 たとえば、接続がタイムアウトになったか、接続が閉じられました。

cURL コマンドを実行して、ネットワーク接続の可用性を確認します。 宛先ホストとポート番号が正しいことを確認します。

HttpRequestException

HTTP リクエスト関連のエラーが発生しました。 たとえば、サーバーに接続できないか、リクエストがタイムアウトになりました。

ネットワーク接続を確認し、サーバーが実行されていることを確認します。 try-catch ブロックを使用して、この例外をキャッチして処理できます。

ProtocolViolationException

ネットワークプロトコル関連のエラーが発生しました。 たとえば、HTTP リクエストまたは応答が無効でした。

ネットワークプロトコルを確認し、リクエストと応答がプロトコルの要件を満たしていることを確認します。 条件付きステートメントまたは例外処理メカニズムを使用して、この例外を処理できます。

TimeoutException

操作がタイムアウトになりました。

タイムアウト期間を増やすか、パフォーマンスを最適化して、指定されたタイムアウト期間が終了する前に操作を完了できるようにします。 条件付きステートメントまたは例外処理メカニズムを使用して、この例外を処理できます。

DNS 解決の失敗

ドメイン名を解決できないか、無効です。

ドメイン名を確認し、DNS サーバーが使用可能であることを確認します。 条件付きステートメントまたは例外処理メカニズムを使用して、この例外を処理できます。

テクニカルサポート

Alibaba Cloud SDK の使用中に他の問題が発生した場合は、次の方法でお問い合わせください。

  • チケットを送信する

  • ご質問やフィードバックがある場合は、DingTalk グループ 60965016010 でテクニカルサポートにお問い合わせください。