我的新ASP。NET MVC Web应用程序工作在我的开发工作站,但不运行在我的Web服务器…


“/”应用程序中的服务器错误。


配置错误

描述:在处理服务此请求所需的配置文件期间发生了错误。请检查下面的特定错误详细信息,并适当修改配置文件。

解析器错误信息:无法加载文件或程序集System.Web。Mvc,版本=1.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35'或其依赖项之一。系统无法找到指定的文件。

源错误:

Line 44:         <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 45:         <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 46:         <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 47:         <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Line 48:         <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

来源文件:C:\inetpub\www.example.org\web.config行:46

程序集加载跟踪:以下信息有助于确定程序集的“System.Web. exe”为何为“System.Web. exe”。Mvc,版本=1.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35'无法加载。

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

版本信息:Microsoft .NET Framework版本:2.0.50727.3053;ASP。净版:2.0.50727.3053


我是否需要安装aspnetmvcbeta安装程序?服务器上的Msi ?或者服务器有不同的安装程序?


当前回答

我遇到了和sgriffinusa一样的问题。 除了Phil的文章建议的参考资料:http://www.haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx。我补充了这些:

* Microsoft.Web.Infrastructure
* System.Web.Razor
* System.Web.WebPages.Deployment
* System.Web.WebPages.Razor

Godaddy部署工作得很完美。关闭自定义错误并添加引用以纠正错误。这应该能帮你找到正确的方向。

其他回答

我刚刚写了一篇博客来解决这个问题。你可以安装ASP。NET MVC在您的服务器上,或者您可以按照这里的步骤。


编辑:(by jcolebrand)我浏览了这个链接,然后遇到了下面维克多同样的问题,所以我建议你也添加这些:

* Microsoft.Web.Infrastructure
* System.Web.Razor
* System.Web.WebPages.Deployment
* System.Web.WebPages.Razor

直接在web服务器上安装MVC是一种选择,这样程序集就会安装在GAC中。您还可以bin部署程序集,这可能有助于在最终版本可用之前,使您的服务器远离预发布程序集。

Phil Haack前几天发表了一篇关于如何在应用中部署MVC的文章,所以没有必要直接安装:

http://www.haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx

除了Haack的帖子,Hanselman也有类似的帖子。BIN部署ASP。NET MVC 3与Razor到Windows服务器没有安装MVC

For me, the "Copy Local = true" solution was insufficient because my Website's project references did not include all the dlls that were missing. As Scott mentions in his post, I also needed to get additional dlls from the following folder on my development box: C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies. The error message informed me which dll was missing (System.Web.Infrastructure, System.Web.Razor, etc.) I continued to add each missing dll, one by one, until it worked.

我在。net项目中使用Jenkins,在引用MVC 4时遇到了麻烦。

我最终通过使用基于注册表的.Net参考搜索引擎功能解决了我的问题:

“HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft.NETFramework \ v2.0.50727 \ AssemblyFoldersEx”

您可以创建子键或设置默认键为“c:\myreferenceedir”为例。

它为我保存了MVC版本和ASP.net网页。

在“添加引用对话框”中添加引用非常有用

http://dhakshinamoorthy.wordpress.com/2011/12/04/how-to-register-your-net-assembly-in-gac-and-make-it-show-in-add-reference-dialog/

我在GoDaddy共享主机上部署我的MVC3 Razor web应用程序时遇到了同样的问题。还有一些额外的.dll需要被引用。详情:http://paulmason.biz/?p=108

基本上,除了@ haacks的帖子中列出的引用外,您还需要添加以下引用,并将它们设置为在本地部署。

Microsoft.Web.Infrastructure System.Web.Razor System.Web.WebPages.Deployment System.Web.WebPages.Razor