Azure 在使用 IConfigurationBuilder.Build 时出现 HTTP 500 错误
Posted
技术标签:
【中文标题】Azure 在使用 IConfigurationBuilder.Build 时出现 HTTP 500 错误【英文标题】:Azure giving HTTP 500 Error when using IConfigurationBuilder.Build 【发布时间】:2021-10-23 03:44:04 【问题描述】:我正在尝试遵循本指南https://docs.microsoft.com/en-us/azure/azure-app-configuration/quickstart-aspnet-core-app?tabs=core5x,它在本地工作,我可以使用此代码很好地获取连接字符串。
var settings = config.Build();
var connection = settings.GetConnectionString("AppConfig");
当我发布到 Azure 时出现问题,我收到 HTTP 500 错误。我尝试过尽可能打开所有类型的日志,我什至尝试在 Main 方法中尝试 TryCatch 以查看是否可以看到实际错误,但所有日志记录都在向我发送错误页面的 html。有什么帮助吗?如果有人知道这会破坏 Azure 的原因,那就太好了,或者告诉我如何实际获取真正详细的错误消息,以便我可以看到发生了什么问题。现在我只是硬编码了连接字符串,然后就可以正常工作了。
【问题讨论】:
您的应用程序是否拥有对配置文件的读取权限? 是的。当我对连接字符串进行硬编码时,它可以工作。还有它的 Azure,所以我认为这应该可以工作,因为它来自 Microsoft 的 Azure 指南。 【参考方案1】:删除未使用的命名空间,构建解决方案,并将站点重新部署到 azure。
托管在 Azure Web 应用程序中的站点可能会遇到 500 (5XX) 错误,这不适用于托管在 Azure VM 中的网站)。 Azure Web App 文件是使用远程文件存储装载的,有时会导致与远程存储的连接问题。这可能会导致应用程序 (AppManager) 重新启动,从而导致 500 错误。可以采取以下步骤来减少这些错误发生的可能性:
将 dss.config 配置为使用 Azure 表存储而不是 物理文件。
将日志文件配置为保存在 Azure 存储中而不是物理文件中。
通过在 Azure 门户的“应用程序设置”下添加以下密钥来启用 Local Cache
WEBSITE_LOCAL_CACHE_OPTION = 始终
注意:启用本地缓存模式在设置密钥后可能需要一些时间才能激活。要检查它是否已启用:
转到https://<YOURSITE>.scm.azurewebsites.net/ProcessExplorer/
点击“Properties”并确认环境变量WEBSITE_LOCALCACHE_READ设置为true
如果您无法让应用程序成功运行,我建议您参考此troubleshooting page 了解如何获取详细的错误消息日志以及一些提示,同时发布到 azure 应用服务。
【讨论】:
以上是关于Azure 在使用 IConfigurationBuilder.Build 时出现 HTTP 500 错误的主要内容,如果未能解决你的问题,请参考以下文章
Azure Functions:如何在 Azure 存储队列的绑定表达式中使用 POCO?
在 ARM 模板中使用访问密钥检索在 Azure 容器上装载 Azure 文件共享
使用 Azure 登录凭据通过 FTP 连接到 Azure 网站