我在迁移项目中工作 .
我试图迁移经典的asp应用程序 . 我不擅长经典ASP .
我从服务器上取了代码并尝试在我的机器上运行它 . 但是得到以下错误 .
Microsoft VBScript运行时错误'800a0009'下标超出范围:'[number:1]'/Include/Security.inc,line 28
请找到我遇到错误的代码块 .
Function StringConvUN
dim tabConv
dim rmLocation
dim username
username = Ucase(Request.ServerVariables("LOGON_USER"))
if UCase(Request.ServerVariables("HTTP_AUTHORIZATION")) = "SITEMINDER" then
StringConvUN = username
else
tabConv = split(username, "'")
rmLocation = join(tabConv, "''")
tabConv = split(rmLocation , "\")
StringConvUN = tabConv(1)
end if
End Function
我在第28行得到了错误
StringConvUN = tabConv(1)
IIS 6服务器中运行的代码相同 . 但在我的机器和新的IIS 7.5服务器中,它给出了上述错误 . 请帮帮我 .
3 回答
您可能需要检查是否在IIS中使用了正确的身份验证方法,以及Amessihel上面提到的内容 . 但这里的代码看起来有点凌乱......
为什么不在
Replace
的初始副本中使用双引号Replace
,如下所示:你可以简单地使用
Instr
和Mid
的组合来获得你想要的字符串......但首先检查IIS .
在获取第一个元素之前,你应该检查
StringConvUN
是否为空...见this answer . 这是一个自制函数,用于检查数组是否为空 .
而不是在数组中查找位置1(在这种情况下不存在),尝试获取数组中的最后一个位置,即“\”之后的所有位置