gpt4 book ai didi

c# - 对 ApplicationTokenProvider.LoginSilentAsync 的调用永远不会返回

转载 作者:行者123 更新时间:2023-11-30 21:40:04 26 4
gpt4 key购买 nike

我正在尝试使用以下代码从我的本地 PC 连接到 AzureBillingAPI:

var serviceCreds = await ApplicationTokenProvider.LoginSilentAsync(tenantDomain, clientId, secret);

此方法永远不会返回。调试输出显示以下内容:


Microsoft.IdentityModel.Clients.ActiveDirectory Verbose: 1 : 07/03/2017 14:02:07: e608ec23-675f-4828-aa65-72479409ec63 - TokenCache: Looking up cache for a token...

iisexpress.exe Information: 0 : 07/03/2017 14:02:07: e608ec23-675f-4828-aa65-72479409ec63 - TokenCache: Looking up cache for a token...

Microsoft.IdentityModel.Clients.ActiveDirectory Information: 2 : 07/03/2017 14:02:07: e608ec23-675f-4828-aa65-72479409ec63 - TokenCache: No matching token was found in the cache

iisexpress.exe Information: 0 : 07/03/2017 14:02:07: e608ec23-675f-4828-aa65-72479409ec63 - TokenCache: No matching token was found in the cache


问题:如何连接?谢谢。

最佳答案

根据你的描述,我猜这个方法不返回的原因是你在sync Controller方法中用wait关键字调用了async方法。

如果您如下调用 getResultAsync,它永远不会返回结果:

    public ActionResult Index()
{
getResultAsync().Wait();
return View();
}

public static async Task getResultAsync()
{
string subscription = "subid";

string tenantid = "tenantid ";
string clientId = "clientId ";
string key = "key";

var serviceCreds = await ApplicationTokenProvider.LoginSilentAsync(tenantDomain, clientId, key);

BillingManagementClient b1 = new BillingManagementClient(serviceCreds) { SubscriptionId = subscription };


var result = b1.Operations.List();

}

我建议你可以改变索引方法如下,它会工作得很好:

   public async Task<ActionResult> Index()
{
await getResultAsync();
return View();
}

结果:

enter image description here

关于c# - 对 ApplicationTokenProvider.LoginSilentAsync 的调用永远不会返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44887805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com