我正在将我们的网站切换到新的 Web 服务器 (Server 2008 R2),并尝试将其中一个新应用程序复制到旧服务器 (Server 2003),以便用户在此期间访问它。我遇到的问题是,即使我将文件夹直接复制到旧服务器,在旧服务器上启动应用程序,并将 ASP.NET 版本设置为 4.0 以匹配新服务器上使用的版本,旧服务器仍会以不同的方式显示页面。具体来说,设置字体大小和类型的 CSS 样式(位于头部)在旧服务器上未使用。在另一个页面上,文本区域未按 ASP.NET 页面中指定的尺寸显示;样式信息没有出现在结果页面的源代码中。
例如,这是 aspx 文件中的代码行:
<td colspan="3"><asp:TextBox ID="cre_slm_comm1" runat="server" Height="156px"
TextMode="MultiLine" Width="400px" Text='<%# Eval("cre_slm_comm1") %>' /></td>
这是IIS6服务器上的最终源代码:
<td colspan="3"><textarea name="FormView1$cre_slm_comm1" rows="2" cols="20"
id="FormView1_cre_slm_comm1">Test comment. 3/1/13. br.</textarea></td>
IIS7.5服务器上也有同样的行:
<td colspan="3"><textarea name="FormView1$cre_slm_comm1" rows="2" cols="20"
id="FormView1_cre_slm_comm1" style="height:156px;width:400px;">
Test comment. 3/1/13. br.</textarea></td>
关于如何修复这些服务器以不同方式解释代码的问题,有什么建议吗?
答案1
将 IIS 中的站点应用程序池更改为针对另一台服务器的相同 .NET Framework 版本和管道。
或者在 web.config 中添加此行:
<pages controlRenderingCompatibilityVersion="3.5" />
Asp.net 根据浏览器种类和版本调整呈现的 html。检查它是否仅与浏览器相关。
如果问题仍然存在,也许这可能是 .net 错误,或者 2 个服务器的框架版本存在一些差异(一些补丁等等)。
无论如何,一个简单的解决方法和最佳实践在我看来是使用 css 类来设置元素的样式。