在 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 Linuxcreate New,设置你的应用服务配置,就可以正常使用了。

【讨论】:

以上是关于在 Linux 操作系统上部署在 Azure 的 WebApi 项目找不到路由的主要内容,如果未能解决你的问题,请参考以下文章

在windows vm上部署Azure Pipelines Agent

在Linux上部署Java应用程序,通过Active Directory连接到Azure SQL Server

Gitlab CI/CD - 在 Azure Linux WebApp 上部署节点应用程序

微软宣布在Azure上支持更多的开放技术和选择

用于 Linux 操作系统的 azure devops 发布管道中的自动化 SQL 部署任务

7.Azure文件(文件共享)-NAS(上)