2012-11-08 40 views
2

我有一箇舊的網站(asp.net 2.0),運行在服務器上的IIS7愉快地。VS2012/IIS7建設網站造成衝突

我想對代碼進行更改,因此我已將所有源代碼和適當的二進制文件複製到我的桌面(運行VS 2012)。

但是,無論我使用IIS或內置的網絡服務器,我收到以下錯誤;

The type 'foo' in 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\livesite\169c38ce\cc32b84b\App_Web_qbel5zk4.28.cs' conflicts with the imported type 'foo' in 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\livesite\169c38ce\cc32b84b\App_Web_m030ztdd.dll'. Using the one in 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\livesite\169c38ce\cc32b84b\App_Web_qbel5zk4.28.cs'. 

此相同的代碼工作得很好舊的XP的PC上運行的VS 2005年我假設,這是下降到.NET框架,在IIS應用程序池被設置爲asp.net 2.0經典跑,但程序集正在框架的第4版中生成。

我已經嘗試刪除臨時的asp.net文件,我仍然得到同樣的問題。

在項目中只反映了每個類的一個實例。那麼如何解決這個問題,以便在VS 2012中起作用,但仍然使用.net 2.0?

回答

2

也許這是一個動態編譯的問題。默認情況下,web.config中「編譯」元素的「批處理」屬性爲true。事情是這樣的:

<compilation defaultLanguage="c#" debug="false" batch="true" targetFramework="4.0" /> 

隨着一批=「真」,只要控制在一個目錄下進行編譯,該服務器在其目錄編譯所有控件(一切?)。

這可能會導致您網站中不同位置引用的元素髮生衝突。

您應該嘗試設置batch =「false」並刪除臨時文件。 如果仍然遇到問題,請嘗試對相應的ascx/cs文件進行虛擬編輯和保存。

希望這會幫助

+0

爲我工作。誠然,這是一天後,PC已經重新啓動,但我把解決方案放在你身上:) – Matt