将 dotnetcore 5 web api 部署到 iis 给出 404

Sta*_*lez 4 .net-core webapi swashbuckle.aspnetcore

我有一个带有 .NET 5 的 Web API 项目(直接从 Visual Studio Asp.NET Core Web API 的模板创建),它在从 Visual Studio 调试时工作得很好,尝试将它部署到具有 Hosting Bundle 的 IIS 服务器.NET 5 安装后,部署显然运行良好,但是当我输入 url 时,我有一个 404。有一个单独的 MVC .NET 5 项目,我以相同的方式部署它并且它运行得非常好。

想知道是否有人可以指出我正确的方向,在这里找不到我缺少的东西。

Sta*_*lez 8

在搜索并弄乱 Startup.cs 文件后,我注意到

    app.UseSwagger();
    app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "api v1"));
Run Code Online (Sandbox Code Playgroud)

在验证 if(env.IsDevelopment()) 中,但是 api 端点工作得很好,尽管它不起作用,因为我无法看到 Swagger 站点,可能是因为您不想公开你给每个人的 api... 感觉我在某处错过了一些解释,但现在一切都很好。


Aji*_*ith 8

面临同样的问题。配置完成后,尝试浏览时出现404错误。

原因是,Swagger 页面将仅在开发环境中配置,如下(在 Startup.cs 中)。

 if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseSwagger();
                app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "AppName v1"));
        }
Run Code Online (Sandbox Code Playgroud)

如果我们输入正确的 URL,API 将可用。如果您仍想查看 Swagger 文件

  • 更改startup.cs中的代码删除对

    if (env.IsDevelopment())

  • 或者在您的 web.config 文件中将环境设置为“开发”。