将 System.Web.Mvc 添加到 \bin 会使 MVC 3 应用程序抛出 403.14 Forbidden

Posted

技术标签:

【中文标题】将 System.Web.Mvc 添加到 \\bin 会使 MVC 3 应用程序抛出 403.14 Forbidden【英文标题】:Adding System.Web.Mvc to \bin makes MVC 3 app throw a 403.14 Forbidden将 System.Web.Mvc 添加到 \bin 会使 MVC 3 应用程序抛出 403.14 Forbidden 【发布时间】:2012-05-08 12:50:36 【问题描述】:

所以我正在尝试将 MVC 3 应用程序部署到 Web 服务器。如果我没有在 \bin 目录中包含 System.Web.Mvc dll,我会收到配置错误,说它找不到程序集 System.Web.Mvc,这是意料之中的。但是,一旦我添加了程序集,就会出现 403.14 Forbidden 错误。我已经尝试了从在服务器上安装 MVC 3 到运行命令的所有方法:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -ir

应用程序池设置为 Asp.net v4.0 集成管道。超级沮丧,所以任何其他想法都会有所帮助。我已经阅读了所有关于 SO 的帖子,但无济于事。

服务器是 Windows 2008 Enterprise 32 位。 .NET 4 已安装。

更新:我发现服务器上禁用了一些 IIS 角色服务。即HTTPRedirection和静态内容压缩。安装这两个服务允许 Web 应用程序运行,但安装实际上失败并说它需要重新启动才能撤消更改。重启后,应用程序显然停止工作。至少我知道现在的问题是什么。我将禁用服务器上的一些服务并尝试重新安装角色服务。

【问题讨论】:

如果你可以控制服务器,为什么不在上面安装 MVC? @MystereMan,我试过了。还是得到 403.14 另外,在 QA 服务器上工作得很好,只是在测试服务器上不行。试图弄清楚有什么不同,但我已经做了 5 个小时了。 :-/ 如果你已经安装了MVC,那么你不需要在bin目录下包含system.web.mvc。 @MystereMan -- 我知道这个事实。我卸载了它以查看安装是否错误和/或是否只需将 dll 添加到 bin 目录即可。我已经尝试重新安装 MVC 3。删除应用程序并从头开始重新部署等。 【参考方案1】:

已解决!希望这对其他人有所帮助。 Web 服务器上未安装 IIS 角色服务。这个测试服务器应该和我们的开发服务器完全一样的设置,但事实并非如此。无论如何,HTTP RedirectionStatic Content Compression 没有安装......在其他一些服务中。当我尝试安装它们时,我收到一个安装错误,需要重新启动才能回滚更改。我不得不卸载Windows Process Activation Service 并重新安装IIS。那时,我安装了 ASP.NET MVC 3 并运行:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -ir,现在一切正常。

【讨论】:

以上是关于将 System.Web.Mvc 添加到 \bin 会使 MVC 3 应用程序抛出 403.14 Forbidden的主要内容,如果未能解决你的问题,请参考以下文章

无法将对象类型“System.Web.Mvc.HtmlHelper` 1 [System.Object]”转换为“System.Web.Mvc.HtmlHelper”

从 ASP.NET MVC 5 移植到 dotnet core 2:可能替代 System.Web.Mvc.HttpStatusCodeResult [重复]

在 Views 文件夹外查看时出错

将自定义属性添加到 asp.net-mvc 中的页面指令

Windows 更新后“命名空间‘System.Web.Mvc’中不存在类型或命名空间名称‘Html’”

带有 Razor 的 MVC3 抛出找不到方法:'System.Object System.Web.Mvc.ControllerBase.get_ViewModel()'