1

我們在我們的公司網站上運行ASP.Net 2.0,並且我想盡可能順利地使用ASP.Net 3.5。 VS 2005中的項目/解決方案體系結構是一個ASP.Net 2.0 Web項目和一個由站點代碼使用的.Net 2.0數據訪問層項目。在同一站點運行asp.net 3.5和asp.net 2.0

在新的VS 2008解決方案中打開項目後,他們似乎將其轉換爲.Net 3.5,並帶來了至少大驚小怪的功能 - 它們的構建正確無誤,部署成功,並且看起來工作得很好,正如我所期望的那樣.Net 2.0和3.5共享一個通用運行時。轉換後的主要區別是web.config文件的引用dll現在是3.5版本。

我想要做的是更新網站零碎;當我對給定頁面進行修改時,將該頁面的3.5版本發送到我們的網絡服務器,而不是一次更新整個網站。在我們的開發箱測試中,這種方法似乎工作正常 - 站點代碼與.net 3.5數據訪問層交互沒有困難,少數頁面運行3.5頁面後臺代碼(這是我的意思,他們是運行在VS 2008中構建的程序集 - 該站點使用單頁程序集代碼),3.5 web.config就位,並且該站點的大部分運行在VS2005中構建的代碼隱藏程序集。一切看起來不錯。

這讓我擔心我錯過了一些東西。這個架構是否可行,或者是否有一個問題在於等待我沒有考慮過的問題?

回答

5

實際上,實際上並沒有像ASP.NET 3.5那樣的東西。這只是一些額外的程序集的ASP.NET 2.0。如果您查看IIS中「ASP.NET 3.5」站點的腳本映射,您會發現它們指向完全相同的文件(c:\ windows \ microsoft.net \ framework \ v2.0.50727 \ aspnet_isapi.dll) 。

唯一需要注意的是web.config的繼承。如果父虛擬目錄具有包含.NET 3.5特定條目的web.config,則子.NET 2.0應用程序將無法讀取這些配置部分,並且會引發異常。

請注意,這是與.NET 1.1和.NET 2.0升級失敗不同的故事。 .NET 1.1使用.NET 2.0中的一個不同的CLR,因此腳本映射將會不同。更糟糕的是,只需在服務器上安裝.NET 2.0就可以將腳本映射更新爲指向.NET 2.0!由於.NET 2.0打破了一些.NET 1.1應用程序,這可能會導致問題。

事實上,當我在生產服務器上安裝.NET 2.0 Winforms應用程序時,它引起了我的嚴重尷尬。繁榮。

+0

這正是我的想法。在.NET 1.1/2.0版本之後(不止一次,我很慚愧地承認)。非常好的提示關於web.config繼承,但是,謝謝! – cori 2010-03-12 02:18:31

1

.NET 3.5是一個超集,大部分是.NET 2.0。可能會有一些小問題,在這些小問題中可以抓住那些依賴於模糊特徵的人,但大多數情況下你應該沒問題。我已經在同一個Web服務器上運行了.NET 3.5和.NET 2.0代碼的網站,沒有任何問題。

相關問題