IIS升级不向后兼容吗?

时间:2009-06-01 19:33:10

标签: asp.net iis vbscript iis-5

我有一系列网页,如果是IIS(5.1)服务器就会运行。

页面在.ASP页面中使用VBscript显示和填充后端数据库。 这些页面多年来一直无误地工作100%。我加载了一个Microsoft工具(Visual Studio Express)来试用它。加载工具后,IIS服务器在.asp页面尝试刷新时开始产生错误。我认为下载试图升级我的Web服务器。我从我的系统中删除了Visual Studio Express。在多次尝试确定错误源之后(注意:加载工具后没有更改代码)我确定在刷新期间发布字符“<><>”时发生错误。注意:我在动态创建的下拉中使用<><><><>作为默认值。

最终问题的解决方案很简单,我只是将默认值更改为下拉列表中的“---------“而不是“<><><><><>”

问题是为什么在9年以上100%工作的东西突然失败,并且有一个配置设置,我可以更改以使服务器不会在<>个字符上出错。

全局搜索和替换将解决问题,但是这个代码序列和后续逻辑在100个地方使用,这将是一项繁琐且耗时的任务。

2 个答案:

答案 0 :(得分:1)

我知道ASP.Net有一个ValidateRequest属性,它不允许某些地方的某些字符阻止某些黑客攻击。默认情况下已启用此功能。我相信IIS 7(可能还有6个)在某种程度上将所有网站都视为ASP.Net应用程序(使用web.config文件)。这不是一个经过验证的事实,但即使我正在测试一个只有.html文件的网站,我也会显示web.config文件。

在ASP.Net中,您可以在web.config文件中将ValidateRequest = true(默认)属性更改为ValidateRequest = false。这可能会阻止服务器端验证的发生,并允许您的默认值通过。

在web.config的system.web部分添加<pages validateRequest="false" />

答案 1 :(得分:0)

它可能将尖括号视为潜在的跨站脚本攻击 - 默认情况下,asp.net(我知道你使用的是ASP,而不是ASP.NET)会抛出一个关于“潜在的危险回发”的异常你提交一个带尖括号的字符串。

是否可以通过安装VS(以及DotNet框架)来设置托管这些页面的网站以使用ASP.NET?

您是否尝试从该网站删除ASP.NET注册?您可以通过使用“-ua”开关运行aspnet_regiis来完成此操作。可在以下位置找到此命令行工具:

  

C:\的Windows \ Microsoft.NET \框架[vX.YYY] \

其中X.YYY为1.1.4322或2.0.50727