我想知道是否有人可以帮助我,我正在尝试在带有 IIS 10(虚拟机)的 Windows Server 2020 上运行使用 .net 4.8 的 asp.net 网站。我可以看到其他问题,但它们是 IIS 和 Windows Server 的旧版本,并且不能解决问题。 IIS 似乎无法识别或拒绝运行 .net 4.8。当我将站点部署到 IIS 然后运行它时,它显示“HTTP 错误 403.14 - 禁止”,日志没有说明存在错误。只是(主要 IIS 日志)
2024-02-03 16:41:54 ::1 GET / - 80 - ::1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/121.0.0.0+Safari/537.36 - - localhost 403 14 0 1
现在我部署了一个简单的模板化 Web 应用程序,它在 Visual Studio 和 IIS Express 中运行良好。
我尝试添加一个简单的 Index.html 文件,该文件工作正常,安装 .NET Core Hosting Bundle 后,IIS 可以正常运行 .Net Core 应用程序,但仍然无法运行 .net 4.8 应用程序。我也关注了
配置步骤 1:安装 IIS 和 ASP.NET 模块也没有成功,并且我无法启用 NET Extensibility 4.5,如下面的屏幕截图所示:
IIS 设置:
站点 IIS 日志:(没有帮助)
#Software: Microsoft Internet Information Services 10.0
#Version: 1.0
#Date: 2024-02-03 17:09:27
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Cookie) cs(Referer) cs-host sc-status sc-substatus sc-win32-status time-taken
2024-02-03 17:09:27 ::1 GET / - 80 - ::1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/121.0.0.0+Safari/537.36 - - localhost 403 14 0 17
2024-02-03 17:09:27 ::1 GET / - 80 - ::1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/121.0.0.0+Safari/537.36 - - localhost 403 14 0 4
为了涵盖所有角度,我在服务器上安装了 Visual Studio,看看它是否能够运行 .Net 4.8 项目,但它仍然无法在 IIS 10 中运行。
我什至尝试在 web.config 中显示详细错误,但结果仍然相同
然后,我尝试使用配置步骤 1:安装 IIS 和 ASP.NET 模块中的命令行安装 ASP.NET 模块,但仍然不起作用。
我想知道是否有人可以帮助我让 IIS 10 运行 .net 4.8 应用程序
您的项目类型设置为 4.8,还是 4.81 之类的其他值??
所以,如果我上面设置为4.8.1,那么你需要在服务器上安装该版本。
另一个问题?您以 x32 位还是 x64 位运行该网站?
换句话说,您是否使用任何 CPU,或者项目设置使用 x32 或 x64 位?
我会考虑强制您的项目以 x64 位运行。既然您安装了 VS,并且 IIS Express 可以工作,那么我敢打赌这是一个配置问题,并且您在此处的 IIS 设置中错过了一些问题。
如果您构建为 x32 位,那么当然在应用程序池中,您希望启用 x32 位应用程序(我看到您已经这样做了)。
请记住,vs2022 之前的任何版本的 Visual studio 都是 x32 位版本(是的,你没看错,vs2022 是 VS 的第一个 x64 位版本)。因此,使用任何 CPU(默认情况下)都会生成 x32 位版本的软件(对于 VS 2022 之前的任何版本)。
使用 vs2022,项目设置的任何 CPU 现在都将导致项目的 x64 位版本运行(至少当您按 F5 进行调试时是这样)。
这意味着并表明您不想再在项目设置中使用任何 CPU。 因此,不要让平台为您“猜测”它最终将“突然”运行的重新使用项目的大小。
所以,现在,强制并“100%确定”这个问题。因此,尝试将您的项目强制为 x64 位并构建它。如果有效,则使用发布向导发布到本地文件夹,然后将该文件夹复制到服务器上的根站点文件夹。并确保在创建本地发布文件夹时,将发布选项设置为 x64 位。如果发布到该文件夹有效,那么当然停止 IIS,然后将该文件夹复制到您用于该 IIS 实例的 wwwroot 文件夹,然后重新启动 IIS,并查看该项目是否运行。