iis7,经典的asp;类型不匹配错误

时间:2011-12-31 14:59:44

标签: iis-7 asp-classic vbscript

我在Windows 7上使用IIS 7设置了本地服务器,用于我正在处理的经典ASP VBS网站。

页面给出了“类型不匹配”错误。原始服务器(Windows 2008,IIS 7)

不会发生这种情况

相关代码:

if myRS("age") = 10 then
  • 字段值为空字符串,使用调试器检查,错误状态为'string'
  • ASP文件,数据库&数据是生产站点的精确副本
  • 公共站点和本地站点都没有错误恢复。
  • 生产服务器是MS-SQL 2008 R2网络版,本地服务器是Express Edition。

现在我知道代码非常简单。但是本地服务器怎么会出现这样的错误而公共服务器却没有呢?我认为比较是通过变体类型进行的,因此应该自动评估子类型没有错误吗?

4 个答案:

答案 0 :(得分:3)

这很可能是由“..内在属性......”引起的。我的猜测是你的生产服务器已经“修复”以允许它,并且你的本地服务器设置从未体验过需要“..修复...”这个。

您可以在这里阅读更多内容:

http://blogs.msdn.com/b/distributedservices/archive/2010/04/28/iis-intrinsic-properties-are-disabled-by-default-on-windows-2008-and-windows-2008-r2.aspx

您已经使用CreateObject来创建记录集/ ado对象,并受到此问题的影响,导致Microsoft将其作为默认设置禁用,开箱即用配置。

在这里阅读更多内容:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;287422

虽然..如果你只是想让它起作用,那么你可以阅读第一个链接。

答案 1 :(得分:0)

它可能是不同的数据源或驱动程序,因此看起来相同的数据略有不同。

例如,它是一个空字符串,一个空字符串或null。

尝试重写,以便记录myRS的值("年龄")。

答案 2 :(得分:0)

我不知道你可以用来修复Nonym提到的服务器配置。我的建议是只更新代码以显式调用所需的属性,而不是让它被推断;如,

改变这个:

if myRS("age") = 10 then

进入这个:

if myRS("age").Value = 10 then

如果我没记错的话,这也有其他优点,尽管目前没有具体的例子可以解释为什么。祝你好运!

答案 3 :(得分:0)

似乎是一个ADO记录集问题。尝试输出myRS(“age”)值,如果它没有返回任何内容或错误,则尝试更改连接字符串中的sql驱动程序,或者甚至可能使用CStr(myRS(“age”))= CStr(10)。