繁体   English   中英

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

[英]iis7, classic asp; type mismatch error

我已经在Windows 7和IIS 7上安装了本地服务器,用于我正在处理的经典ASP VBS网站。

一页显示“类型不匹配”错误。 原始服务器(Windows 2008,IIS 7)不会发生这种情况

相关代码:

if myRS("age") = 10 then
  • 字段值是一个空字符串,已通过调试器检查,并且错误状态为“字符串”
  • ASP文件,数据库和数据是生产站点的精确副本
  • 在公共站点和本地站点中都不会恢复错误。
  • 生产服务器是MS-SQL 2008 R2 Web版,本地服务器是Express Edition。

现在,我知道代码编写得很糟糕。 但是本地服务器如何发出这样的错误而公共服务器却没有呢? 我认为比较是通过变体类型进行的,因此应该自动评估子类型而没有错误?

这很可能是由“ ..固有属性..”问题引起的。 我的猜测是您的生产服务器已经被“修复”以允许它,而您的本地服务器设置从未经历过“ ..fix ..”的需要。

你可以在这里阅读更多:

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

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

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

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

尝试重写,以便您可以记录myRS(“ age”)的值。

我不知道您可以用来解决Nonym提到的服务器配置。 我的建议是只更新代码以显式调用所需的属性,而不是让其推断出来。 例如,

更改此:

if myRS("age") = 10 then

变成这个:

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

如果我没记错的话,这还可以带来其他好处,尽管目前尚无具体示例说明为什么。 祝你好运!

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM