我们将 ASP.NET Core 8 Web API 部署到 IIS。 API 不是独立的部署。应用程序池已创建并分配给具有读取和读取和执行权限的应用程序文件夹,并且池已启动。应用程序文件夹还有一个
web.config
文件。
但是,当我们尝试通过客户端应用程序访问 API 时,我们永远不会收到响应。应用程序似乎没有启动,并且 IIS 没有记录对 API 的任何访问,尽管对客户端代码的请求已成功记录。事件查看器没有显示任何错误或有用的信息。
当我们使用
dotnet .\<applicationName>.dll
从命令行手动运行应用程序时,它会正常启动,不会出现任何错误,并按预期生成日志。检查 HTTPErr 日志显示对 API 路由的请求,但这些请求被标记为已取消。
在我们的本地和开发环境中,应用程序运行正常。这些环境安装了以下组件:
但是,在生产服务器上(API 无法启动),只安装了以下组件:
问题是否可能是完整的 .NET 托管捆绑包(包括必要的运行时和 ASP.NET Core 共享框架)未正确安装在生产服务器上?如果是这样,解决此问题的必要步骤是什么?
您可以访问 .NET 8 下载页面并下载 ASP.NET Core 运行时和托管捆绑包。安装后,验证是否已安装适用于 x64 和 x86 的 ASP.NET Core Shared Framework 和 .NET Runtime。
dotnet --list-runtimes
安装完成后,重新启动 IIS 并重试。