Réponses aux questions fréquentes concernant le SDK Alibaba Cloud pour .NET, notamment la configuration des clés AccessKey, les erreurs de délai d'expiration et les problèmes d'identifiants.
Prérequis
Installez .NET Framework 4.5+ ou .NET Core 2.0+.
Aperçu
Erreurs de configuration des clés AccessKey
L'erreur suivante indique que la paire de clés AccessKey est incorrecte :
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.')
Solutions :
-
Vérifiez que les variables d'environnement
ALIBABA_CLOUD_ACCESS_KEY_IDetALIBABA_CLOUD_ACCESS_KEY_SECRETsont définies :Linux ou 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%Si une paire de clés AccessKey valide s'affiche, les variables d'environnement sont correctes. Sinon, reconfigurez-les. Pour plus d'informations, consultez la rubrique Configurer les variables d'environnement sous Linux, macOS et Windows.
-
Recherchez les erreurs liées aux clés AccessKey dans le code.
Exemple incorrect :
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config { AccessKeyId = Environment.GetEnvironmentVariable("yourAccessKeyID"), AccessKeySecret = Environment.GetEnvironmentVariable("yourAccessKeySecret"), };Exemple correct :
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"), };RemarqueCes appels lisent l'ID de clé AccessKey et la clé secrète à partir des variables d'environnement
ALIBABA_CLOUD_ACCESS_KEY_IDetALIBABA_CLOUD_ACCESS_KEY_SECRET.ImportantPour éviter toute fuite de clés AccessKey, n'écrivez pas directement la paire de clés en texte clair dans votre code.
Erreurs TimeoutException
Les délais d'expiration des appels API peuvent avoir plusieurs causes. Voici les causes courantes et les solutions associées.
Problèmes de connectivité réseau
La requête API ne parvient pas au serveur en raison d'une connexion réseau défaillante ou instable.
Solutions :
Utilisez ping ou curl pour tester la connectivité vers le point de terminaison du service. Par exemple, si un appel API SMS expire, exécutez ping dysmsapi.aliyuncs.com ou curl -v https://dysmsapi.aliyuncs.com.
Si la commande expire ou ne renvoie aucune réponse, vérifiez les règles de blocage de votre pare-feu local ou de votre routeur.
-
Si une réponse est renvoyée, définissez un délai d'expiration approprié. Pour plus d'informations, consultez la rubrique Configurer une période de délai d'expiration. Exemple de code :
// Configure the timeout period for connection requests by using runtime parameters. The timeout period takes effect only for requests that use RuntimeOptions. RuntimeOptions runtimeOptions = new RuntimeOptions(); runtimeOptions.ConnectTimeout = connectionTimeoutMillis;
Temps de traitement long de la requête API
Le temps de traitement de la requête API dépasse le délai d'expiration de lecture.
Solution : augmentez le délai d'expiration de lecture. Pour plus d'informations, consultez la rubrique Configurer une période de délai d'expiration. Exemple de code :
// Configure the timeout period for read requests by using runtime parameters. The timeout period takes effect only for requests that use RuntimeOptions.
RuntimeOptions runtimeOptions = new RuntimeOptions();
runtimeOptions.ReadTimeout = readTimeoutMillis;
ArgumentNullException : Value cannot be null
Le package Aliyun.Credentials est obsolète. Mettez-le à niveau vers la dernière version :
dotnet add package Aliyun.Credentials
Exceptions C# courantes
|
Message d'erreur |
Cause |
Solution |
|
SocketException |
Échec au niveau du socket, tel qu'un délai d'expiration de connexion ou une fermeture. |
Exécutez cURL pour vérifier la connectivité réseau. Confirmez que l'hôte de destination et le port sont corrects. |
|
HttpRequestException |
Échec au niveau HTTP, tel qu'un serveur inaccessible ou un délai d'expiration de la requête. |
Vérifiez la connexion réseau et confirmez que le serveur est en cours d'exécution. Utilisez un bloc try-catch pour gérer cette exception. |
|
ProtocolViolationException |
Échec au niveau du protocole, tel qu'une requête ou une réponse HTTP non valide. |
Vérifiez que la requête et la réponse sont conformes aux exigences du protocole. |
|
TimeoutException |
Une opération a expiré. |
Augmentez le délai d'expiration ou optimisez les performances pour garantir que l'opération se termine dans les limites imparties. |
|
Échec de la résolution DNS |
Le nom de domaine ne peut pas être résolu ou n'est pas valide. |
Vérifiez le nom de domaine et confirmez que le serveur DNS est accessible. |
Support technique
Pour toute autre question relative aux SDK Alibaba Cloud :
Groupe DingTalk pour le support technique : 60965016010.