2016-02-14 59 views
0

讓我們清楚,我不太喜歡WebForms。這就是爲什麼我不想花幾個小時來調試在一臺服務器(IIS7)和一臺新服務器(IIS8)上運行良好的遺留代碼庫。Web窗體ClientIDMode默認在IIS8中更改 - 如何恢復到舊的aspnetForm?

我聽說有這個新的ClientIDMode,它使表單和其他控件改變他們的ID或不明智,但我沒有碰它。它看起來像默認值已經改變(即不是向後兼容)?

我曾在一個母版頁的形式,看起來像<form id=SiteForm runat=server

這在渲染輸出自動改變其ID來aspnetForm

確定它有點奇怪,但我在這個應用程序中有很多代碼依賴於它。我可以簡單地將服務器頁面中的ID更改爲<form id=SiteForm runat=aspnetForm,這可能會修復它。但也許這個舊項目中有一些代碼在服務器端使用SiteForm,所以我可以搜索它。

但是也可能有其他控件潛伏在附近,其ID也發生了變化。所以也許有一些我可以添加到網絡配置,以恢復到以前的行爲?之前的默認設置是什麼?

更新:看起來像導出和導入應用程序池時,這個網站莫名其妙地從.NET2更改爲.NET4,所以也許我只需要將其設置回.NET2?

+1

您是否嘗試在您的web.config文件中添加''?屬性'clientIDMode'定義了ID的生成方式。 –

+0

我沒有真正嘗試過,因爲在進行調試之前,我需要一些建議。但這可能會奏效。 –

回答

0

我發現我沒有勾選該框來在IIS安裝程序中安裝.NET 3.5。這就是爲什麼我的所有應用程序池自動恢復爲.NET 4以及爲什麼會發生這些奇怪的更改。所以我將它安裝在IIS中,重新啓動,並將應用程序池設置爲.NET 2(即3.5)。這固定它,乾淨,所以我會打電話給解決方案。