【问题标题】:How to make ASP.NET Core Web API on .NET 5 run on Azure?如何使 .NET 5 上的 ASP.NET Core Web API 在 Azure 上运行?
【发布时间】:2021-05-20 21:34:26
【问题描述】:

尝试在 Azure 上发布在 .NET 5 上运行的 Web API 时遇到问题 我不断收到

即使是默认的 ASP.NET Core Web API 模板在部署到 Azure 时也会失败。

我已经将 Azure 设置为在 .NET 5 上使用早期访问权限,我什至尝试了自包含部署。

忽略截图访问index.html的事实,这只是一个测试,访问控制器中任何操作的路由也是如此。

有什么想法吗?

【问题讨论】:

  • 很抱歉打扰您,但 WebAPI 没有 HTML 页面。他们只有控制器。如果您想弹出文档,我会选择 Swagger,然后您可以转到 https://example.com/swagger 并查看您的控制器:docs.microsoft.com/en-us/aspnet/core/tutorials/… 如果您想要一个包含 HTML 内容的网站,那么 不要 创建项目时选择 WebAPI 选项。
  • 呵呵,是的,我知道,发布了错误的屏幕截图,即使使用默认路由,也没有静态文件,这也不是问题。原来 Azure 要求你有一个额外的带有 js 和 cs 的 wwwroot 文件夹,即使你有一个应该没有静态文件的 Web API
  • 我已经在 Azure 中编写了 4 年的 WebAPI,并且从未有过任何 wwwroot 目录或任何静态内容。 Visual Studio 2019 中的默认 WebAPI 项目就是您所需要的。
  • 我也没有,直到我在 .NET 5 中发布了这个特定项目。.NET Core 3.1 上的默认 Web API 项目部署得很好。
  • Turns out Azure required me to add an additional wwwroot with js, and css files, even when my project is configured to use endpoints only 从来没有听说过 Azure API 项目需要这个额外的 wwwroot 文件夹。

标签: .net azure asp.net-core .net-core .net-5


【解决方案1】:

请注意,API 模板是用于创建 RESTful HTTP 服务的项目模板,正如@Andy 所说,WebAPI 项目通常不提供 HTML 页面。

如果你真的想在你的 WebAPI 项目中提供一个index.html 页面,你可以试试:

1)在您的项目中创建一个wwwroot 文件夹并将index.html 放入其中

2)调用Startup.Configure中的UseStaticFiles方法,可以提供静态文件

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    //...
    //your code here...

    app.UseHttpsRedirection();

    app.UseStaticFiles();

    app.UseRouting();

    //...

有关提供静态文件的更多信息,请查看:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-5.0

即使使用默认路由,也没有静态文件,也会发生这种情况。

您可以尝试使用您配置的实际路由访问您的 API 端点,如下所示。

https://xxx.azurewebsites.net/api/{controller_name}/{action_name?}

或者

https://xxx.azurewebsites.net/{controller_name}/{action_name?}

【讨论】:

    【解决方案2】:

    所以,我能够解决这个问题。 我与我过去部署的其他项目以及我也部署的 .NET 5 中的 Blazor 进行了比较。 原来 Azure 要求我添加一个带有 js 和 css 文件的额外 wwwroot,即使我的项目配置为仅使用端点,并且根本不使用静态文件。

    【讨论】:

      【解决方案3】:

      截至昨天,问题不再发生

      【讨论】:

        猜你喜欢
        • 2021-10-21
        • 1970-01-01
        • 1970-01-01
        • 2014-01-07
        • 2019-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-16
        相关资源
        最近更新 更多