簡體   English   中英

在 Prem IIS 服務器上托管 Web API 和具有天藍色廣告承載身份驗證的 api 時出現錯誤 OWIN start.cs

[英]Getting error OWIN start.cs while web API hosting on prem IIS server and api having azure ad bearer authentication

我已經在 SPA 應用程序中實現了 azure 廣告身份驗證,並使用 OWIN start.cs 驗證了令牌。 它在本地環境中運行良好。 下面用於令牌驗證的代碼:

    app.UseWindowsAzureActiveDirectoryBearerAuthentication(new WindowsAzureActiveDirectoryBearerAuthenticationOptions
    {
        Tenant = tenant,
        TokenValidationParameters = new TokenValidationParameters
        {
            //ValidAudiences = new[] { Audience },
            ValidAudience = validateAudience,
            ValidateIssuer = false,
            ValidIssuers = new[] { ValidIssuers }
        }
    });

當我在 prem 服務器上部署此已發布代碼並運行 web api 時,它會引發錯誤,如下面的屏幕截圖所述。 我使用了 Microsoft.Owin.Security.ActiveDirectory 版本 4.2.2.0, 在此處輸入圖像描述 在此處輸入圖像描述

有人可以幫忙嗎?

基本上, if the user closes the page suddenly.可能會在取消 HTTP 請求時task was canceled 或在執行完成之前取消。

TaskCanceledException 主要是超時。但是要檢查異常,可能必須使用 try catch 進行檢查。

try
{
    var response = task.Result;
}
catch (TaskCanceledException ex)
{
    // Check ex.CancellationToken.IsCancellationRequested here.
    // If false, we may assume it was a timeout in most cases.
}

如果使用if (cancellationToken.IsCancellationRequested)發生取消令牌,您可以嘗試抑制響應

 HttpResponseMessage response = await base.SendAsync(request, cancellationToken);
        if (cancellationToken.IsCancellationRequested)
        {
            return new HttpResponseMessage(HttpStatusCode.InternalServerError);
        }
        return response;

如果是由於超時,可以設置為某個值。請檢查參考。

var clientHttp = new HttpClient();
httpClient.Timeout = TimeSpan.FromMinutes(30)

在某些使用情況下, await可用於異步完成的同時任務。

參考:

  1. c# - Azure網站上的“任務被取消”錯誤 - 代碼日志
  2. c# - HttpClient - 任務被取消? - 堆棧溢出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM