我有一个引用以下代码的Windows服务.使用下面的方法,我的代码包含一个try..catch块,但它似乎并没有catch RefereshTokenException认为是thrown在下面的方法.显然我的理解async是不正确的.
private async void RefreshTokens()
{
try
{
var cognito = new CognitoApi();
var response = cognito.TokenRefresh(_refreshToken);
if (response.HttpStatusCode == HttpStatusCode.OK)
{
_idToken = new AwsToken(response.AuthenticationResult.IdToken);
_accessToken = new AwsToken(response.AuthenticationResult.AccessToken);
}
else
{
await _signIn(_credentials.SiteId, _credentials.LocationId, null);
}
}
catch (NotAuthorizedException)
{
await _signIn(_credentials.SiteId, _credentials.LocationId, null);
}
catch (Exception ex)
{
throw new RefreshTokenException("Failed refreshing tokens.", ex);
}
}
Run Code Online (Sandbox Code Playgroud)
这是调用的代码 RefreshTokens
public async void Process(QueueMessage queueMessage, Action<QueueMessage> retryAction)
{
_processingCounter.Increment();
try …Run Code Online (Sandbox Code Playgroud) 有谁知道错误代码57是什么意思?我看了谷歌,但它告诉我,这是一个错误的网卡 - 我不知道这是怎么可能的.运行此函数时出现错误:
if (CryptVerifySignature(
hHash,
signatureContents,
dwSigLen,
phKey,
NULL,
0))
{
printf("The signature has been verified.\n");
}
else
{
MyHandleError("Error during CryptVerifySignature.");
}
Run Code Online (Sandbox Code Playgroud)
MyHandleError
void MyHandleError(char *s)
{
fprintf(stderr, "An error occurred in running the program. \n");
fprintf(stderr, "%s\n", s);
fprintf(stderr, "Error number %x.\n", GetLastError());
fprintf(stderr, "Program terminating. \n");
exit(1);
Run Code Online (Sandbox Code Playgroud)
}