无法在IIS 8上加载文件或程序集'System.Web.Helpers,错误

时间:2013-10-19 04:00:14

标签: c# asp.net asp.net-mvc-4 iis

我有一个MVC4 Web应用程序,可以使用本地IIS Express Server在Visual Studio 2012上正常运行。当我将应用程序发布到在Windows 2012上运行的IIS 8 Web服务器时,初始登录页面会正确显示。但是,使用远程调试时,我看到当我使用以下行检查凭据时:

if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))

我收到如下图所示的错误: System.Web.Helpers error http://www.ismlab.usf.edu/capture.jpg

11 个答案:

答案 0 :(得分:25)

解决方案 - 复制对本地

的引用
  1. 右键单击引用System.Web.Helpers并选择Properties
  2. 将Copy Local更改为true。
  3. 构建解决方案

答案 1 :(得分:22)

听起来好像MVC尚未安装在服务器上。

答案 2 :(得分:17)

theta包含在官方Nuget包Microsoft.AspNet.WebPages中。

安装它并更正引用,并将文件复制到bin文件夹。

答案 3 :(得分:14)

我能够通过下载Microsoft Web Platform Installer,搜索MVC并安装“ASP.NET MVC3(Visual Studio 2010)发布的4/11/2011”软件包解决此问题。在安装之前关闭所有Visual Studio实例。

答案 4 :(得分:7)

确保它正在寻找文件的正确版本。我的不正确,web.config文件指向的版本比我在项目中的版本更高。

在我注意到的属性中,版本是2.0.0.0,所以我在web.config文件中创建了这个版本

enter image description here

答案 5 :(得分:6)

只是添加到现有的答案,因为即使我遇到相同的错误,也无法在程序集中找到引用。我将分享对我有帮助的事情:

从Tools-> NuGet包管理器打开包管理器 - >包管理器控制台并输入:

PM> Install-Package microsoft-web-helpers

此System.Web.Helpers将出现在References-> Assemblies下。从那里'复制本地'属性可以更改为True。

答案 6 :(得分:2)

我正在运行VS 2015Preview,可以通过NuGet安装最新版本的MVC来解决问题。

以防任何人仍然遇到这个。

答案 7 :(得分:2)

我添加了#34; Microsoft ASP.NET Razor"使用Manage NuGet Packages。

使用Add References,出于某种原因,我只有System.Web.Helpers 1.0.0和2.0.0 ......但不是3.0.0。

答案 8 :(得分:1)

我在IIS 8中使用WCF服务时遇到了同样的问题。看看这个解决方案Deploying ASP.NET,它对我有用。

答案 9 :(得分:1)

您的 Web.config 文件可能有问题。 打开文件,找到var gulp = require('gulp'); var spawn = require('child_process').spawn; gulp.task('my-task', function (cb) { var cmd = spawn('cmd', ['arg1', 'agr2'], {stdio: 'inherit'}); cmd.on('close', function (code) { console.log('my-task exited with code ' + code); cb(code); }); });标记。 修改MVC的版本。 例如,MVC 3

<runtime></runtime>

答案 10 :(得分:0)

添加正确版本的MVC后,添加了对Microsoft Web Helper的引用,但未添加对System.Web.Helper的引用。手动将其添加到您的参考文献中。