让我们说清楚,我不喜欢WebForms。这就是为什么我不想花费数小时调试在一台服务器(IIS7)和一台服务器(IIS8)上运行良好的遗留代码库。
我听说有这个新的ClientIDMode
,它会让表单和其他控件改变他们的ID或不改为合理的东西,但我没有触及它。看起来默认值已经改变(即不向后兼容)?
我在母版页中有一个看似<form id=SiteForm runat=server
这会自动将其ID更改为渲染输出中的aspnetForm
。
当然这有点奇怪,但我在这个应用程序中有很多依赖它的代码。我只需将服务器页面中的ID更改为<form id=SiteForm runat=aspnetForm
即可修复它。但也许在这个旧项目中有一些代码在服务器端使用SiteForm
,所以我可以搜索它。
但是可能还有其他控件潜伏着,其ID也发生了变化。那么也许我可以添加到Web配置中以将行为恢复到以前的状态?之前的默认值是什么?
更新:看起来在导出和导入应用程序池时,这个站点以某种方式从.NET2更改为.NET4,所以也许我只需要将它设置回.NET2?
答案 0 :(得分:0)
我发现我没有勾选在IIS设置中安装.NET 3.5的方框。这就是为什么我的所有应用程序池都自动恢复为.NET 4以及为什么会发生这些奇怪的更改。所以我在IIS中安装它,重新启动,并将应用程序池设置为.NET 2(即3.5)。这很干净,所以我会称之为解决方案。