我已将asp.net核心1.1升级到asp.net核心2.它在本地服务器上运行良好,但当我尝试将其部署到Azure托管的Web应用程序时,我收到错误:
启动应用程序时发生错误。 .NET核心
4.6.00001.0 X86 v4.0.0.0 | Microsoft.AspNetCore.Hosting版本2.0.0-rtm-26452 | Microsoft Windows 6.2.9200
有什么想法吗?
答案 0 :(得分:38)
请在应用的应用设置中添加ASPNETCORE_DETAILEDERRORS = true,重新启动它,并在下次加载网址时查看详细错误。 这将有助于你解决它。
例如,我的错误是我没有配置API API的托管标识来访问密钥保管库以获取存储帐户和Cosmos DB密钥。我使用startup来注入已配置的存储和cosmos数据库对象,因此在我启动应用程序时失败了。
答案 1 :(得分:2)
注意–完成故障排除后,您希望将其关闭,因为这会影响性能。
因此您的web.config的aspNetCore元素应如下所示
答案 2 :(得分:1)
我设法自己解决了这个问题,我希望这个解决方案可以帮助别人。
首先,我在Azure服务器上设置了日志文件夹,并找到了更多详细信息。 我忘记了SQL.Update数据库更改中的一些数据库更改并运行它现在正常工作。
答案 3 :(得分:0)
通过从发布的可执行文件启动应用程序,我能够发现此错误的例外情况。
要在本地尝试此操作,可以右键单击Web项目,单击“发布”,然后将其发布到文件夹中。文件夹中应该有一个与项目同名的可执行文件。运行该命令,它将在控制台中显示异常。
答案 4 :(得分:0)
您可以通过启用ASPNETCORE_DETAILEDERRORS = true
获得更多详细信息:
转到您的Azure仪表板->您的应用程序服务
在应用程序的“设置”(位于左侧边栏中)->向下滚动至“ 配置”,这是一个key:value对设置,请输入以上内容。 重新启动您的网络应用。
答案 5 :(得分:0)
在DetailedErrorsKey
中启用Program.cs
,以便您了解发生了什么。
WebHost.CreateDefaultBuilder(args)
.UseSetting(WebHostDefaults.DetailedErrorsKey, "true")
答案 6 :(得分:0)
尝试通过触发命令执行应用程序
dotnet myapplicationname.dll
这将引发启动错误,并可以帮助您缩小错误范围。
答案 7 :(得分:0)
请检查代码中的 Appsettings.json 文件或 JSON 文件并检查它们的格式,我遇到了同样的问题,因为在将代码发布到 azure 时 appsettings.json 文件中缺少“,”。之后,我更正了 appsettings.json 文件中的错误,并重新发布了它运行良好。