2010-07-20 66 views
6

我正在將ASP.NET項目從.NET 3.5移動到.NET 4.將ASP.NET項目移動到.NET 4

如果我在web.dev下進行調試(即,在Visual Studio [2010]中),但只要嘗試在IIS7 [.5]下運行,調試器就無法連接。直接在IIS下運行項目只會導致它返回403s(沒有子代碼,所以沒有太多的幫助)。

我通過使用當前(和工作!).NET 3.5站點來設置站點,並將AppPool更改爲使用.NET 4運行時的站點。我已經確認所有的文件權限都是猶太教(至少從.NET 3.5的角度來看)。我感覺好像我在這裏錯過了一些配置步驟...

嘗試附加調試器時的錯誤消息只是「無法在Web服務器上啓動調試」。不是世界上最有用的錯誤信息。

直接附加到關聯的w3wp進程強烈建議應用程序永遠不會成功啓動。

最基本的問題是,我將如何影響從.NET 3.5到.NET 4的這種改變,以用於在IIS下運行的項目?

+0

我假設你將VS中的項目轉換爲.NET 4嗎? – mxmissile 2010-07-20 22:31:31

+0

@mxmissile - 是的,這將是一個安全的假設。 :) – 2010-07-21 01:27:46

回答

0

從頭開始一個新項目,並在那裏使用web.config。在那裏複製你所有的3.5頁面,並手動移動你需要的web.config元素。這些頁面本身不需要任何轉換,它都在web.config中。 .net 4.0頁面的web.config實際上明顯更小,這是因爲.net 4.0不僅僅是.net 2.0的擴展,比如3.5 is。

+0

web.dev和IIS如何對待web.config有什麼不同? – 2010-07-21 01:39:57

2

您不能在同一個應用程序池中混用.NET框架。因此,確保只有.NET 4.0網站位於您的應用程序池中。

記得將網站/虛擬目錄設置爲.NET 4。

4

想通了。

.NET 4尚未安裝用於IIS目的。不要問我爲什麼這樣。

在Visual Studio命令提示符下的.NET 4安裝目錄(\ Windows \ Frameworks \ v4.0.xxxx)中運行asp_net_regiis -i(我的情況是x64)解決了這個問題。

1

IIS7在「網站」中有兩個選項。在IIS6中,您將在IIS7中添加一個子應用程序作爲「添加虛擬目錄...」,這樣做會迫使您保持與網站相同的AppPool和.NET框架版本。

但是,IIS7現在有一個「添加應用程序...」選項,它允許您基本上執行IIS6允許的操作,以便您可以明確聲明應用程序池運行並且可以與父網站不同。