在 Linux 操作系统上部署在 Azure 的 WebApi 项目找不到路由
Posted
技术标签:
【中文标题】在 Linux 操作系统上部署在 Azure 的 WebApi 项目找不到路由【英文标题】:WebApi project deployed at Azure on Linux OS wont find routes 【发布时间】:2020-06-24 03:40:19 【问题描述】:我正在关注this 关于“如何使用 Linux 在 Azure 上部署 WebApi”的教程,该教程针对 .NET Core 3.1,但在我的情况下是 2.1。一切都很顺利,除了它找不到任何路线。我有一条测试路线,但找不到。
"//mywebapi.azurewebsites.com/api/Test/Test" 没有得到任何东西。
在程序类中,我启用了错误选项以显示任何错误但仍然存在。
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.CaptureStartupErrors(true) // the default
.UseSetting("detailedErrors", "true")
.UseStartup<Startup>();
更新!
我能够阅读日志并得到以下信息:
2020-03-12 05:23:43.022 信息 - 此容器未启用日志记录。 请使用https://aka.ms/linux-diagnostics 启用日志记录以在此处查看容器日志。 2020-03-12 05:23:44.322 信息 - 为站点 com 向容器 com_0_3b90f319 发起预热请求 2020-03-12 05:23:46.590 错误 - 站点 com 的容器 com_0_3b90f319 已退出,站点启动失败 2020-03-12 05:23:46.593 错误 - 容器 com_0_3b90f319 未响应端口:8080 上的 HTTP ping,站点启动失败。请参阅容器日志以进行调试。 2020-03-12 05:23:46.608 信息 - 停止站点 com,因为它在启动期间失败。
和
【问题讨论】:
你能从 Startup.cs 发布你的public void ConfigureServices(IServiceCollection services)
吗?
【参考方案1】:
使用发布配置文件部署webapi时,点击App Service Linux
,然后点击import your profile
。
记住在应用服务配置中将WEBSITE_WEBDEPLOY_USE_SCM
设置为false
。
顺便说一句,最简单的方法是在 Visual Studio 中,右键单击您的项目并选择 Publish
。点击App Service Linux
和create New
,设置你的应用服务配置,就可以正常使用了。
【讨论】:
以上是关于在 Linux 操作系统上部署在 Azure 的 WebApi 项目找不到路由的主要内容,如果未能解决你的问题,请参考以下文章
在windows vm上部署Azure Pipelines Agent
在Linux上部署Java应用程序,通过Active Directory连接到Azure SQL Server
Gitlab CI/CD - 在 Azure Linux WebApp 上部署节点应用程序