将应用程序部署到IIS时发生分析错误



我有一个用.NET 4.0编写的ASP.NET应用程序。当我通过Visual Studio运行应用程序时,一切都正常,看起来也不错。当我在本地机器上将它部署到IIS7时也是如此。然而,当我将它部署到另一个运行在WindowsServer2008R2和.NET4.0和IIS7上的盒子时,我会得到以下解析错误:

 Cannot create an object of type 'System.Web.UI.WebControls.TextBoxMode' from its 
 string representation 'Number' for the 'TextMode' property.

它抱怨asp:TextBox上的TextMode属性不包含Number选项,尽管它在我的本地IIS上运行得很好。我看到这篇文章,人们建议这两台机器有不同的.NET版本。我的情况并非如此;这两台机器都有.NET 4.0和IIS7。

除此错误外,其他页面的呈现方式也有所不同。例如,服务器计算机上的IIS不尊重任何asp:TextBox控件上的Width属性;我必须将宽度作为一种样式来应用,即使我的本地IIS将它们渲染得很好。我正在使用IE10 w/o兼容模式。

我最初认为问题可能是缺少jsstyle文件,但IE在Network Profiler窗口中报告所有内容文件的成功状态。

在这一点上我真的很失落。这两个框中的代码、IIS设置和.NET版本完全相同,但页面呈现方式不同。我唯一能想到的是,Visual Studio中安装了其他一些Web组件,它正在改变IIS呈现aspx页面的方式。这可能吗?如果有人在某个时候遇到过这个问题,如果你能给我一些线索,告诉我是什么导致了这个问题,我将不胜感激。

所以我终于发现了问题所在。解析错误实际上与.NET有关。我的机器上安装了.NET 4.5,但服务器上没有。我仍然感到困惑的是,我的应用程序的目标版本是4.5,所以如果Number选项只存在于4.5中,为什么Visual Studio会显示它?不确定这是一个bug还是我忽略了什么。

至于本地IIS和服务器IIS之间的差异,我不得不在服务器上安装ASP.NET浏览器定义修补程序(KB2600088)。这解决了所有的造型问题。

相关内容

最新更新