gpt4 book ai didi

asp.net-core - 如何处理 IHostBuilder CreateHostBuilder 的异常

转载 作者:行者123 更新时间:2023-12-04 04:01:19 27 4
gpt4 key购买 nike

为了模拟错误,我给出了错误的 Azure Key Vault 地址。使用以下代码;我尝试了所有可能的方法来尝试/捕获异常,但在应用程序启动时仍然出现错误。
如何处理此异常,以便应用程序在启动期间不会抛出错误?
我有 ASP.NET Core 3.1 Web API 应用程序。

HTTP Error 500.30 - ANCM In-Process Start Failure


错误的实际原因是我输入了错误的 key 保管库地址,

System.Net.Http.HttpRequestException: 'No such host is known.'

 public class Program
{
public static void Main(string[] args)
{
try
{
CreateHostBuilder(args).Build().Run();
}
catch (Exception exception)
{
Console.WriteLine(exception);
}
}

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)

.ConfigureAppConfiguration((context, config) =>
{
try
{
var keyVaultClient = KeyVaultClient();
if (keyVaultClient != null)
config.AddAzureKeyVault("https://testkeyvault07021.vault.azure.net", keyVaultClient,
new DefaultKeyVaultSecretManager());
}
catch (Exception exception)
{
Console.WriteLine(exception);
}

})

.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});

private static KeyVaultClient KeyVaultClient()
{
try
{
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient =
new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
return keyVaultClient;
}
catch (Exception exception)
{
Console.WriteLine(exception);
return null;
}
}
}

最佳答案

该应用程序实际上工作得很好,我认为没有任何确切的方法可以解决这种情况。
当您启动应用程序时,在调用 Startup 类完成应用程序的配置之前,配置托管环境是程序类的工作,包括设置服务器。
Startup 类负责创建处理 HTTP 请求的管道。这意味着如果在配置 Startup 类之前发生任何错误,服务器将不知道如何处理错误或如何处理错误,因此您会得到 HTTP 500,
如果在调用 Startup 类之后必须处理错误,并且使用 Configure 方法配置了 HTTP 管道,并且您已经包含了
app.UseDeveloperExceptionPage();
那么正确的错误信息就会被打印回来。
生成错误是因为您在构建 API 时向 API 发出 HTTP 请求

关于asp.net-core - 如何处理 IHostBuilder CreateHostBuilder 的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63037076/

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