Keyvault无法在Visual Studio中通过Docker运行的应用程序中运行

保罗

我有一个.NET Core 3.1控制台应用程序,该应用程序需要访问KeyVault

在Visual Studio中作为控制台运行此应用程序时,一切都很好,因为Visual Studio是使用Azure凭据登录的,因此可以授予访问权限

但是,实际上,该应用程序在Docker内部运行

Visual Studio提供了在docker内部运行应用程序的选项

启动代码如下

public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureAppConfiguration((context, config) =>
            {
                var keyVaultEndpoint = new Uri(Environment.GetEnvironmentVariable("VaultUri"));
                config.AddAzureKeyVault(
                keyVaultEndpoint,
                new DefaultAzureCredential());
            })
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            })
            .ConfigureLogging(logging =>
            {
                logging.ClearProviders();
                logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
            })
            .UseNLog();  // NLog: Setup NLog for Dependency injection
}

从Visual Studio在Docker内部运行时,上述带有Value的错误不能为null

我认为这是因为DefaultAzureCredential无法正常工作

这是仅开发环境的问题

我该如何解决?

保罗

扎克斯

您需要对容器进行身份验证,看起来有很多方法可以做到这一点。

DefaultAzureCredential文档中:

为将部署到Azure的应用程序提供默认的TokenCredential身份验证流。如果启用,将尝试以下凭据类型:

EnvironmentCredential,ManagedIdentityCredential,SharedTokenCacheCredential,VisualStudioCredential,VisualStudioCodeCredential,AzureCliCredential,InteractiveBrowserCredential

在VS中工作时,您可能一直在使用VisualStudioCredential而不意识到它,因为您的环境隔离在Docker容器中,因此您需要手动进行身份验证。我可能会使用EnvironmentCredential,因为您只需要通过环境变量获取凭据并将其公开给容器即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法使React应用程序在Visual Studio中运行

在Docker中运行的应用程序无法与Elasticsearch Docker连接

无法通过版本3在Android中运行应用程序

在Visual Studio中运行Cordova应用程序时出错

Marathon无法运行Docker容器中的应用程序

无法加载在Docker中运行的Spring Boot应用程序

无法在 Visual Studio 17 中运行使用安装项目安装的应用程序

启用脚本调试后,无法在Visual Studio中运行angularJS应用程序(1.6)

在 Visual Studio 中获取 Windows 窗体应用程序项目以从窗体运行,而不必打开 Visual Studio?

Docker:应用程序可以通过docker-compose up正常运行,但是如何通过Visual Studio运行它并进行调试呢?

WinForms应用程序无法在Visual Studio外部运行

Visual Studio 2017,无法调试或运行应用程序

通过GitHub部署时Express 4应用程序无法在Azure中运行

Visual Studio 2015 Apache Cordovo无法在带有空白应用程序项目模板的模拟器中运行

在visual-studio中运行aspnet核心应用程序时,是否可以挂接npm任务?

Visual Studio运行.NET应用程序中的调试日志文件位置

Visual Studio Cordova应用程序在设备上的Ripple中运行

如何在Visual Studio调试中以管理员身份运行应用程序?

MFPF 7.1-Windows 8.1应用程序在Visual Studio中运行时出现错误

我可以在R Tools for Visual Studio中运行Shiny应用程序吗

防止不必要的应用程序在 Visual Studio 2017 中运行

在Visual Studio中启动Web应用程序时运行gulp任务

在Visual Studio代码中运行asp.net核心mvc应用程序

TKinter应用程序在Visual Studio Code中运行完全正常,但作为.exe崩溃

在Visual Studio 2013中运行MVC应用程序时出错

无法从主机访问在 docker 容器中运行的烧瓶应用程序

在 Docker 映像中运行应用程序时无法自动提取 zip 文件

无法在 Docker 映像中运行 Rust 应用程序:“作为 const fn 还不稳定”

在Docker容器中运行Spring Boot应用程序,无法连接MySQL