我有一个用.NET 4.0编写的ASP.NET应用程序。当我通过Visual Studio运行应用程序时,一切正常并且看起来很好。当我将其部署到本地计算机上的IIS7时也是如此。但是,当我将其部署到运行在带有.NET 4.0和IIS7的Windows Server 2008 R2上的另一个框时,我收到以下解析错误:
Cannot create an object of type 'System.Web.UI.WebControls.TextBoxMode' from its
string representation 'Number' for the 'TextMode' property.
它抱怨TextMode
上的asp:TextBox
属性不包含Number
选项,即使它在我的本地IIS上运行正常。我came across this post,人们建议这两台机器有不同的.NET版本。对我来说情况并非如此;这两台机器都有.NET 4.0和IIS7。
除了这个错误,其他页面也会以不同的方式呈现。例如,服务器计算机上的IIS不尊重任何Width
控件上的asp:TextBox
属性;我必须将宽度应用为样式,即使我的本地IIS呈现它们也没问题。我使用IE10 w / o兼容模式。
我原本以为问题可能是缺少js
或style
文件,但IE报告了Network Profiler
窗口中所有内容文件的成功状态。
我此时真的输了。代码,IIS设置和.NET版本在这两个框上完全相同,但页面的呈现方式不同。我唯一能想到的是,Visual Studio安装了一些其他Web组件,这改变了IIS呈现aspx页面的方式。那可能吗?如果有人在某个时候遇到过这个问题我会很感激,如果你能给我一些关于可能导致这个问题的指示。
答案 0 :(得分:0)
所以我终于弄明白了问题所在。事实上,解析错误确实与.NET有关。我的机器上安装了.NET 4.5,但服务器上没有。我仍然感到困惑的是我的应用程序的目标版本是4.5,所以如果Number
选项仅存在于4.5中,为什么Visual Studio甚至会显示它?不确定这是一个错误还是我忽略了什么。
至于本地和服务器IIS之间的差异,原来我必须在服务器上安装ASP.NET Browser Definitions Hotfix (KB2600088)。这解决了所有样式问题。