2010-05-31 171 views
0

我开发了一个ASP.Net MVC v1 web应用程序,它在我们的服务器上运行良好。客户端想要移动到另一台服务器,并且该站点不在新主机的服务器上运行。ASP.Net MVC Web应用程序未运行

新的服务器规格:

  • 的Windows 2008
  • ASP.Net框架V4
  • ASP.Net MVC 2(据我所知它包括与.net V4)
  • IIS 7.5(afaik)

错误消息:

无法加载文件或程序集 'System.Web.Mvc,版本= 1.0.0.0,文化=中性公钥= 31bf3856ad364e35' 或它的一个依赖。该系统找不到指定的文件。

我的理解是它应该向后兼容。当v2可用时,应用程序是否真的试图在ASP.Net MVC v1中运行?

我已经尝试将MVC .dlls部署到Bin文件夹,但它不起作用。

我也尝试更改所有system.Web.Mvc版本值(在web应用程序的web.config中)从1.0.0.0到2.0.0.0,这也没有工作。

任何援助将不胜感激。

+0

尝试针对v2 dll进行编译(将您的开发机器升级到mvc框架的服务器版本) – 2010-05-31 15:30:07

+0

也尝试将新服务器上的应用程序池更改为'Classic ASP.NET' – 2010-05-31 15:41:00

+0

我已经使用s1mm0t的解决方案,并且现在至少站点正在运行,但现在存在路由问题。谢谢您的帮助。 我没有访问服务器,因为主机是偏执或什么的。 – 2010-06-01 12:19:25

回答

0

我同意tvanfosson,我会在您的服务器上安装MVC 1.0。如果由于某种原因,这是不可能的,那么以下内容添加到您的web.config文件:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" 
         publicKeyToken="31bf3856ad364e35"/> 
     <bindingRedirect oldVersion="1.0.0.0" 
         newVersion="2.0.0.0"/> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

这将确保任何试图引用MVC 1.0组件将被重定向到MVC 2.0代替。个人而言,我不会指望所有的东西都能正常工作,并且首先会在开发环境中完成这些工作,作为完全升级到MVC 2.0的一部分。

1

我认为最好的做法是在您的服务器上安装MVC 1.0--它与MVC 2.0是分开的。您也可以将您的代码迁移到2.0,但需要完成几个步骤,并且两个版本之间出现了一些突破性变化。尤其是,IValueProvider界面发生了显着变化,如果您已经使用了这个界面,您可能会进行一些重大修改。版本1.0和2.0是兼容的,因为它们都可以安装在同一个系统上,并且1.0中的大多数构造继续在2.0中工作。但是,您必须完成几个步骤才能将1.0网站迁移到2.0网站(如您所发现的那样)。

相关问题