部署后 API 未在 IIS 中启动:缺少 .NET 托管组件?

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

我们将 ASP.NET Core 8 Web API 部署到 IIS。 API 不是独立的部署。应用程序池已创建并分配给具有读取和读取和执行权限的应用程序文件夹,并且池已启动。应用程序文件夹还有一个

web.config
文件。

但是,当我们尝试通过客户端应用程序访问 API 时,我们永远不会收到响应。应用程序似乎没有启动,并且 IIS 没有记录对 API 的任何访问,尽管对客户端代码的请求已成功记录。事件查看器没有显示任何错误或有用的信息。

当我们使用

dotnet .\<applicationName>.dll
从命令行手动运行应用程序时,它会正常启动,不会出现任何错误,并按预期生成日志。检查 HTTPErr 日志显示对 API 路由的请求,但这些请求被标记为已取消。

在我们的本地和开发环境中,应用程序运行正常。这些环境安装了以下组件:

  • Microsoft .NET 8.0.8 Windows 服务器托管
  • Microsoft .NET 8.0.8 运行时 (x86)
  • Microsoft .NET 8.0.8 运行时 (x64)
  • Microsoft ASP.NET Core 8.0.8 共享框架 (x86)
  • [在开发服务器上]:Microsoft ASP.NET Core 8.0.8 Shared Framework (x64)

但是,在生产服务器上(API 无法启动),只安装了以下组件:

  • Microsoft .NET 8.0.8 Windows 服务器托管

问题是否可能是完整的 .NET 托管捆绑包(包括必要的运行时和 ASP.NET Core 共享框架)未正确安装在生产服务器上?如果是这样,解决此问题的必要步骤是什么?

c# iis asp.net-core-webapi .net-8.0
1个回答
0
投票

您可以访问 .NET 8 下载页面并下载 ASP.NET Core 运行时和托管捆绑包。安装后,验证是否已安装适用于 x64 和 x86 的 ASP.NET Core Shared Framework 和 .NET Runtime。

dotnet --list-runtimes

安装完成后,重新启动 IIS 并重试。

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