2010-05-31 233 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網站(如您所發現的那樣)。

相關問題