ASP.NET Core 6 Web API 和 IIS 10 - 未找到

问题描述 投票:0回答:1

我正在尝试在 Windows Server 2019 计算机上的 IIS 上部署 ASP.NET Core 6 Web API。最终目标是仅从该服务器(而不是从外部)在

localhost:port/swagger
localhost:port/{controller}/{action}
上调用我的 API。

这是我到目前为止所拥有的:

  1. 使用以下命令发布 API:
    dotnet publish --configuration Release
  2. 我安装了 Microsoft .NET 6.0.14 - Windows Server 托管
  3. 我已启用
    Directory Browsing
  4. 我在 IIS 中添加了一个新站点,并将物理路径指向我粘贴已发布输出的文件夹:
  5. 配置绑定到
    http
    ,IP地址全部未分配
    , and port 
    8080`

当我单击“浏览”时,它会将我带到 URL

localhost:8080
,然后我会获得物理路径中的文件列表,这是正确的。

如果我尝试使用

localhost:8080/swagger
,我会得到 404,如果我使用
localhost:8080/{controller}/{getaction}
,我也会得到 404。

到目前为止我已采取的故障排除措施:

  1. 我确保我的 IIS 用户有权访问该文件夹
  2. 我已经运行了文件夹中的可执行文件,API 工作正常
  3. 如果我使用
    dotnet run
    运行 API,我可以成功调用端点
  4. 我已经阅读过是否应该在代码中完成任何特定配置,但似乎不是这样

我的脑海中浮现出多个问题:

  1. 我应该在代码中进行一些配置吗?
  2. IIS 应该如何运行我的应用程序?它运行可执行文件吗?它是在寻找不存在的东西吗?等等
  3. IIS 中是否有我遗漏的配置?
  4. IIS 是否正在寻找可执行文件、DLL?
  5. IIS 如何识别哪个是主 DLL?

还有什么需要配置的吗?

localhost hosting .net-6.0 iis-10 windows-server-2019
1个回答
0
投票

在您的应用程序池上 ->

Advanced Settings
->
Identity
添加您的 IIS_IUSRS 用户。然后,您的应用程序池将在此身份下运行并有权访问文件夹。

如果您已经这样做了,请尝试将用户的文件夹安全性修改为

This folder, subfolder and files

© www.soinside.com 2019 - 2024. All rights reserved.