Vbscript 函数的作用是:返回类型不匹配错误

Vbscript 函数的作用是:返回类型不匹配错误,vbscript,asp-classic,Vbscript,Asp Classic,下面是我的经典asp应用程序的服务器端asp代码: Function isValidPACSSession() ... Dim sessionID : sessionID = Request.QueryString("forSessionID") isValidPACSSession = SessionID2PACSUserID(sessionID) ... End Function Function SessionID2PACSUserID(sSessionID) if (Not IsNul

下面是我的经典asp应用程序的服务器端asp代码:

Function isValidPACSSession()
...
Dim sessionID : sessionID = Request.QueryString("forSessionID")
isValidPACSSession = SessionID2PACSUserID(sessionID)
...
End Function

Function SessionID2PACSUserID(sSessionID)
if (Not IsNull(sSessionID) AND Len(sSessionID) > 0) then
            ...it fails here at the Len function.
        else
            ...
        end if
End Function

Len()函数为这个partcular实例抛出“类型不匹配”错误,而其他组件对SessionID2PACSUserID()的其他调用也可以。请帮助。

看起来您只是想检查是否存在值,为什么不执行以下操作:

dim sessionLength : sessionLength = 0
if (Not IsNull(sSessionID) AND sSessionID <> "") then
    sessionLength = Len( sSessionID )
dim sessionLength:sessionLength=0
如果(非IsNull(sSessionID)和sSessionID“”),则
会话长度=Len(sSessionID)

我也同意上面关于VS调试器不能很好地与经典asp一起工作的说法。我找到了一个解决方案。。实际上,我在被调用的网页上有一个名为“len”的局部变量,它导致len()失败。将len变量名更改为nLength,len()现在可以正常工作。

如果
Request.QueryString(“forSessionID”)
为空,它将失败,请确保它不是通过这个小技巧
sessionID=Request.QueryString(“forSessionID”)&“
len(sSessionID&>)
(个人喜欢在设置变量时这样做)。更大的问题是,为什么要将sessionID作为querystring传递?这可能是一个重复的问题,我已经检查了调试器请求。querystring(“forSessionID”)的值为字符串类型的“F50DAA7A37494A51A0A157D917FACF891129”。函数仍然抛出类型不匹配错误。如何调试?另外,你有没有尝试过这些建议,不管它是否有影响?至少尝试一下,这样可以消除它,然后我们尝试其他方法,假设可能会有问题。我正在使用VisualStudio2010进行调试。我已经尝试按照您的建议,通过修改SessionID2PACSUserID()函数来测试代码,但它仍然不起作用。顺便说一句,这是所有服务器端的经典asp代码。谢谢。但我还需要字符串的长度,以便将其用于DB查询目的。