2010-04-29 304 views
2

我目前在.NET 3.5上有了一個ASP.NET MVC 2應用程序,我想將它遷移到新的.NET中4.0與Visual Studio 2010將.NET 3.5移植到.NET 4上的ASP.NET(MVC 2)#gotchas

原因是,它總是好的留下來的這些東西上面 - 再加上我真的很喜歡新的automatic encoding<%: %>clean web.config :-)

因此,沒有任何人有任何的經驗,他們可以分享?尋找陷阱和喜歡。

我想這也可以適用於任何ASP.NET窗體項目。

TIA,
查爾斯

回答

3

疑難雜症#1 - 更改應用程序池

如果你的ASP.NET項目設置爲使用IIS,而不是卡西尼,升級到.NET 4.0過程中,它會自動更改應用程序池,你站點用於新的ASP.NET v4.0應用程序池。如果您使用應用程序池標識進行匿名身份驗證,這可能會影響權限。

疑難雜症#2 - [ValidateInput(false)]停止工作

這是在ASP.NET 4.0中的重大更改。相關問題可以在here找到。

jist是你必須在你的web.config中添加<httpRuntime requestValidationMode="2.0" />

1

我只是通過這一過程去。這是相對無痛的。正如你所提到的,它會給你一個機會去用你的web.config文件做一些清理工作。

有一個地方我遇到了麻煩。如果您正在通過MvcBuildViews = true在項目文件中利用後期構建ASP.NET編譯任務,那麼如果您嘗試發佈,則可能會遇到問題。顯然,VS 2010在你的項目的子目錄中存檔文件,導致ASP.NET編譯器檢測到多個web.config文件。有一個完整的解釋,並通過微軟對這個職位的迴應:

http://forums.asp.net/p/1547458/3797505.aspx

否則這個過程是相當順利。

+0

太棒了,我真的遇到了'MvcBuildViews = true'和VS2010的發佈之前的問題。感謝您的鏈接:-) – Charlino 2010-04-29 02:29:01

+0

嗯,你採取了哪些步驟?我將我的VS Project升級到了.NET 4 - 它爲我清理了我的web.config。然後,我在IIS7.5中更新了我的應用程序池以使用.NET 4框架,但現在該站點投擲了500.19 - 由於權限不足,無法讀取配置文件。但是,應用程序池標識明確有權讀取該文件,並且IIS匿名身份驗證明確使用應用程序池標識。有任何想法嗎? – Charlino 2010-04-29 03:16:51

+0

不要擔心最後的評論 - 當我將項目升級到.NET 4時,它似乎將我的網站應用程序池自動更改爲新的ASP.NET v4.0應用程序池。我只是不得不改回它。 – Charlino 2010-04-29 03:19:27