pad*_*ike 4 azure azure-powershell azure-active-directory azure-functions azure-managed-identity
我在 .NET 6 上有一个以 dotnet 隔离模式运行的 C# azure 函数。此函数调用另一个 azure 函数,该函数使用 Azure AD 身份验证。为了生成令牌,我有以下代码:
var audience = $"api://{appRegistrationClientId}";
var tokenCredential = new DefaultAzureCredential();
var token = await tokenCredential.GetTokenAsync(new TokenRequestContext(new[] { $"{audience}/.default" }) { });
var apiToken = token.Token;
return apiToken;
Run Code Online (Sandbox Code Playgroud)
如果我将此代码部署到 Azure,则代码运行良好。我可以从其他功能应用程序调用和检索数据。但是,当在 Visual Studio 上本地运行时,出现以下异常:
由于未知错误,Azure PowerShell 身份验证失败。有关详细信息,请参阅故障排除指南。 https://aka.ms/azsdk/net/identity/powershellcredential/troubleshoot 未处理的异常。System.ArgumentException:启动挂钩程序集“Microsoft.Azure.Functions.Worker.Core”无法加载。有关详细信息,请参阅内部异常。
---> System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.Azure.Functions.Worker.Core,Culture=neutral,PublicKeyToken=null”。该系统找不到指定的文件。
文件名:“Microsoft.Azure.Functions.Worker.Core,Culture=neutral,PublicKeyToken=null”
在 System.Reflection.RuntimeAssembly.InternalLoad(ObjectHandleOnStack assemblyName、ObjectHandleOnStack requestingAssembly、StackCrawlMarkHandle stackMark、布尔 throwOnFileNotFound、ObjectHandleOnStack assemblyLoadContext、ObjectHandleOnStack retAssembly)
在 System.Reflection.RuntimeAssembly.InternalLoad(AssemblyName assemblyName、RuntimeAssembly requestingAssembly、StackCrawlMark& stackMark、布尔 throwOnFileNotFound、AssemblyLoadContext assemblyLoadContext)
在 System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName)
在 System.StartupHookProvider.CallStartupHook(StartupHookNameOrPathstartupHook)
--- 内部异常堆栈跟踪结束 ---
在 System.StartupHookProvider.CallStartupHook(StartupHookNameOrPathstartupHook)
在 System.StartupHookProvider.ProcessStartupHooks()
我尝试通过异常消息提供的链接进行故障排除,但没有任何效果。我可以调用 Get-AzAccessToken -ResourceUrl https://management.core.windows.net并在 powershell 中生成令牌。
我还在 Azure 服务身份验证 -> 帐户选择选项下将我的 Azure 帐户添加到 Visual Studio。
有没有办法让这个调用在本地工作,或者有什么解决方法。我确实需要能够从我的开发机器调用此函数才能测试我自己的代码。
小智 10
当我收到此错误时,我必须重新启动 Visual Studio 2022 并重新输入 Azure 服务身份验证(包括 MFA)的凭据。
Visual Studio > Tools > Options > Azure Service Authentication
| 归档时间: |
|
| 查看次数: |
4094 次 |
| 最近记录: |