Asp classic Windows 2012服务器中IIS8.5上的Server.MapPath()提供的对象不支持此属性或方法

Asp classic Windows 2012服务器中IIS8.5上的Server.MapPath()提供的对象不支持此属性或方法,asp-classic,iis-8.5,Asp Classic,Iis 8.5,我正在尝试在Windows Server 2012 R2的II8.5上实现一个经典的ASP项目 启动DashBoard.asp时,出现错误 对象不支持属性或方法:Server.MapPath(“\”) 该项目在Windows 2008 Server R2上的IIS7.5上运行良好。但是在II8.5上失败了。已经完成了Classic ASP在IIS8.5服务器上执行所需的所有相应设置,但仍然遇到相同的问题 有谁能告诉我,为什么服务器对象方法在IIS8.5上没有得到认可?编辑:新方法 查看代码,在g

我正在尝试在Windows Server 2012 R2的II8.5上实现一个经典的ASP项目

启动DashBoard.asp时,出现错误

对象不支持属性或方法:Server.MapPath(“\”)

该项目在Windows 2008 Server R2上的IIS7.5上运行良好。但是在II8.5上失败了。已经完成了Classic ASP在IIS8.5服务器上执行所需的所有相应设置,但仍然遇到相同的问题


有谁能告诉我,为什么服务器对象方法在IIS8.5上没有得到认可?

编辑:新方法

查看代码,在global.asa
Application\u OnStart
中有以下行失败:

Call setXDefInApplicationScope(Server.MapPath("fb/infra/server/XDef"))
可能
setxdefinaplicationscope
未在此上下文中定义,但驻留在包含的文件中,该文件不适用于
Application\u OnStart

编辑:第二个选项(由评论排除)

我猜,您已经在上下文中创建了一个名为“server”的变量,它覆盖了您认为正在使用的服务器对象

    class clsServer
        public foo
    end class

    dim server

    set server = new clsServer
    Response.Write Server.MapPath("/") ' will raise the error

我猜,它可能在您的设置中不是很明显,可能在任何包含的文件中。更重要的是,如果您没有按照应该的方式指定
选项explicit
,则甚至不能存在
dim

服务器。MapPath()
获取URL路径并将其转换为物理路径。“\”是一个物理路径字符,您应该使用
/
来表示网站的根目录。我只是想澄清一下,我不是说这是您应该使用
/
的问题。不确定这是否会导致
对象不支持此属性或方法的错误。不,我没有声明任何名为Server的局部变量。在my global.asa中,我尝试使用Server.mapPath设置应用程序范围。但它在IIS8上没有被识别。同样的代码在Windows2008Server上的IIS7.5上运行良好。失败的代码如下:子应用程序在出错时启动下一个Dim xslTemplate,xslSource应用程序(“ApplicationError”)=“N”应用程序(“ApplicationErrorInfo”)=“调用setXDefInApplicationScope(Server.MapPath(“fb/infra/Server/XDef”))如果错误号为0,则应用程序(“ApplicationError”)=“Y”Application(“ApplicationErrorInfo”)=Application(“ApplicationErrorInfo”)&,错误代码:“&Error.Number&”-“&Error.Description End如果在调试时,在服务器对象内部可以看到方法,但在访问服务器时,MapPath(“fb/infra/Server/XDef”)给出的对象不支持属性或方法errorOh,然后看看这里:这个错误仍然没有意义。在错误发生之前,您是否可以输出
typename(Server)
?删除“下一步继续时出错”时的
时会发生什么情况?