我刚买了一台新的基于云的虚拟机,安装了 Windows server 2016。我还确保 IIS 10 安装了 .NET Framework 4.6 和 ASP.NET 4.6。
我的 ASP.NET MVC 应用程序以 .NET 4.5 为目标,并使用 Web 部署成功发布到此服务器上的“默认网站”。 (在这里可以看到所有asp.net mvc发布的文件)
“默认网站”使用具有 v4.0 .NET CLR 版本的“DefaultAppPool”。
但是当我在浏览器中打开网页时,收到“403 - 禁止访问:访问被拒绝”。错误。我做了研究,对我来说,IIS 似乎从未尝试将其作为 ASP.NET MVC 应用程序打开。它只是尝试查找与“controller/Action”.html 同名的物理文件,当然找不到。我尝试过的解决方案:
还有另一篇文章提到 IIS 模块配置中的“UrlRoutingModule-4.0”。就我而言,路由模块由于某种原因不存在。我添加了它,但没有任何变化。此外,每次我从 VS 重新发布网站时,部署成功后模块就会消失。
我也尝试添加
<modules runAllManagedModulesForAllRequests="true"/>
到我的 webconfig 文件,也不走运。在服务器上运行 aspnet_regiis -ir。它说该命令不能在此操作系统上运行,但仍然可以运行它。但是,问题仍然存在。
最佳答案
我终于成功了!!!
解决方案是转到控制面板,然后单击“打开和关闭 Windows 功能”,然后转到“服务器角色”->“Web 服务器 (IIS)”->“Web 服务器”->“应用程序开发” ,在这里您需要确保安装了“.NET Extensability 4.6”和“ASP.NET 4.6”。
显然,当安装 IIS 10 时,默认情况下不会安装这些。感谢大家的帮助。
关于c# - Windows Server 2016 上的 IIS 10 未运行我的 ASP.NET MVC 网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53042531/