2012-10-10 122 views
8

我已經在使用ASP.NET MVC 3應用程序。該項目使用VS 2010構建,目標是.NET 4.0。現在我將其重定向到.NET 4.5併成功重新編譯。嘗試將它部署到我們的測試服務器(Windows 2008 R2 SP1)現在失敗:使用Web Deploy部署.NET 4.5 Web應用程序

錯誤代碼:ERROR_APPPOOL_VERSION_MISMATCH 更多信息:您嘗試使用 應用程序池具有「managedRuntimeVersion」屬性設置爲' V4.0' 。 此應用需要'v4.5'。瞭解更多信息:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_APPPOOL_VERSION_MISMATCH

服務器已安裝.NET 4.5,但沒有應用程序池4.5(因爲它是就地升級,因爲我知道4.0池應該沒問題)。客戶端機器具有VS 2012,因此Web Deploy 3(以前是Web Deploy 2)。我也安裝了Web Deploy 3到服務器。

試圖重新註冊ASP.NET aspnet_regiis - 沒有運氣。

爲什麼我得到錯誤,我該如何解決?這太令人沮喪了......

p.s. 找到similar question約RC,但它並不能幫助

更新:

貌似this is a bug微軟並沒有因爲CTP固定。 IgnoreDeployManagedRuntimeVersion財產做到了。多可惜!

+0

隨時發佈自己的答案。 –

回答

5

Windows Server 2012中默認包含.NET 4.5和(當添加的Web服務器角色)IIS有以下應用程序池:默認應用.NET V4.5,使用.NET V4.5經典 .NET Framework 4.0(因爲4.5是4.0的就地升級)。但是,如果我們在安裝了.NET 4.0的Windows Server 2008上安裝.NET 4.5 Redistributable,則池不會重命名:ASP.NET v4.0ASP.NET v4.0 Classic。這是Web部署失敗的關鍵。

9

你可以嘗試添加該屬性的項目:

<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion> 
+3

...或將其傳遞給MSBuild(對於CI等).../P:IgnoreDeployManagedRuntimeVersion = True –

2

@kzu:沒有嘗試,這會工作。

安裝Orchard CMS時遇到同樣的問題。繼續定位v2.0。 但找到簡單的解決方案:在IIS中,在應用程序池(具有所有應用程序池的列表)上,可以找到第二個設置右上角列表:「設置應用程序池默認值..」,將默認值從2.0更改爲4.0 et ,瞧。

1

爲IIS註冊ASP.NET
a。以管理員身份運行CMD
b。 CD to \ windows \ microsoft.net \ framework \ v4.x
c。 Aspnet regiis -i