c# - Windows Server 2016 上的 IIS 10 未运行我的 ASP.NET MVC 网站
问题描述
我刚刚购买了一台安装了 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 时,默认情况下不会安装这些。感谢大家的帮助。
推荐阅读
- python - 如何在避免全局变量的情况下制作游戏?
- reactjs - 如何在 contextProvider 之间传递 setState 函数?
- python - 使用 BETO - 西班牙语版 BERT
- javascript - Reactjs 钩子无法读取未定义错误的属性“推送”
- r - R:多类矩阵
- python - 在只读模式下获取 subreddit 时,PRAW 给出 401 异常
- javascript - 需要创建一个来自 fecth 的选项列表
- eclipse - 为我在 Eclipse 中的 Maven 项目而不是 WebContent 上的视图设置一个文件夹
- spring-webflux - 在 401 响应的情况下,带有 oauth 令牌的 Spring 响应式 Web 客户端 REST 请求
- java - 使用 Gluon 插件和 Graalvm 链接任务失败