Asp.net mvc ASP.Net MVC Web应用程序未运行

Asp.net mvc ASP.Net MVC Web应用程序未运行,asp.net-mvc,Asp.net Mvc,我开发了一个ASP.NETMVCV1Web应用程序,它在我们的服务器上运行良好。客户端希望移动到另一台服务器,而站点不在新主机的服务器上运行 新服务器规格: Windows 2008 Net框架v4 ASP.NETMVC2(afaik包括在.NETV4中) IIS 7.5(afaik) 错误消息: 无法加载文件或程序集“System.Web.Mvc,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”

我开发了一个ASP.NETMVCV1Web应用程序,它在我们的服务器上运行良好。客户端希望移动到另一台服务器,而站点不在新主机的服务器上运行

新服务器规格:

  • Windows 2008
  • Net框架v4
  • ASP.NETMVC2(afaik包括在.NETV4中)
  • IIS 7.5(afaik)
错误消息:

无法加载文件或程序集“System.Web.Mvc,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。系统找不到指定的文件

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

我已经尝试将MVC.dll部署到Bin文件夹,但没有成功

我还尝试将所有system.Web.Mvc版本值(在Web应用程序的Web.config中)从1.0.0.0更改为2.0.0.0,这也不起作用


非常感谢您的帮助。

我认为最好的办法是在您的服务器上安装MVC 1.0,它与MVC 2.0是分开的。您也可以将代码迁移到2.0,但仍有一些步骤需要完成,而且两个版本之间存在一些突破性的更改。特别是,IValueProvider接口已经发生了显著的变化,如果您使用了它,您可能会遇到一些重大的修改。版本1.0和2.0是兼容的,因为它们都可以安装在同一个系统上,而且1.0中的大多数构造都可以在2.0中继续工作。但是,您必须完成几个步骤才能将1.0网站迁移到2.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


就我个人而言,我不希望一切都能正常工作,我会首先在开发环境中这样做,作为MVC2.0全面升级的一部分。

尝试根据v2 dll进行编译(将您的开发机器升级到MVC框架的服务器版本)另外,请尝试将新服务器上的应用程序池更改为“Classic ASP.NET”。我使用了s1mm0t的解决方案,至少站点现在正在运行,但现在存在路由问题。谢谢你的帮助。我无法访问服务器,因为主机处于偏执状态或其他状态。站点已启动并正在运行,路由问题是由应用程序池未设置为使用集成模式引起的。