Asp classic 将server.mappath修改为其他内容,因为共享主机不允许父路径

Asp classic 将server.mappath修改为其他内容,因为共享主机不允许父路径,asp-classic,Asp Classic,我正在使用以下代码连接到我的数据库。在我的主机升级IIS之前,它工作得很好,现在由于默认情况下禁用了父路径而无法连接 我尝试过使用文件的虚拟路径,但每次都会出错,不管我尝试了什么——即使是直接从我的托管公司获得文件的完整虚拟路径 我需要将连接脚本的server.mappath部分更改为允许我使用文件的完整文件路径或url,但不知道从何处开始 Set adoCon = Server.CreateObject("ADODB.Connection") adoCon.Open "DRIVER={Micr

我正在使用以下代码连接到我的数据库。在我的主机升级IIS之前,它工作得很好,现在由于默认情况下禁用了父路径而无法连接

我尝试过使用文件的虚拟路径,但每次都会出错,不管我尝试了什么——即使是直接从我的托管公司获得文件的完整虚拟路径

我需要将连接脚本的server.mappath部分更改为允许我使用文件的完整文件路径或url,但不知道从何处开始

Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & 
Server.MapPath("../stockdetails.mdb")    
在大多数其他页面上,其编码如下:

filePath = Server.MapPath("../stockdetails.mdb")
objDataConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +filePath)    
如果我将所有内容保持原样,则会出现以下错误:

The '..' characters are not allowed in the Path parameter for the MapPath method.    
我创建了另一个文件来输出数据库的完整文件路径。此输出如下所示:

\\e379583ad6.storage-1a.hosting.MYDOMAINNAME\sites\1a\e\e379583ad6\public_html\nurbek\stockdetails.mdb    
根据此信息,我将连接脚本更改为:

Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & 
Server.MapPath("\e379583ad6.storage-1a.hosting.MYDOMAINNAME\sites\1a\e\e379583ad6\public_html\nurbek\stockdetails.mdb")  
然后,这给了我错误消息:

[Microsoft][ODBC Microsoft Access Driver] '(unknown)' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.    
有人能建议我如何修改这两个连接脚本以使用完整的文件路径吗

www.mydomainname.com/nurbek/stockdetails.mdb    

Server.MapPath
用于将父路径(或虚拟路径)转换为绝对路径。如果您试图将一个已经绝对的路径传递给
Server.MapPath
,您将收到一个“无效路径”错误,因为您已经确定了绝对路径是什么

最好使用
Server.MapPath
,因为它允许您迁移代码而不必编辑任何绝对路径地址,但是如果您无法使用它,您可以只引用完整的绝对路径。这应该起作用:

Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &_
"\\e379583ad6.storage-1a.hosting.MYDOMAINNAME\sites\1a\e\e379583ad6\public_html\nurbek\stockdetails.mdb;"

默认情况下,IIS中禁用父路径,因此大多数共享主机提供程序不会修改此路径。也就是说,您可以使用IIS 7.0及更高版本支持的IIS配置文件自己修改它

这些步骤实施起来相当简单

  • 在网站的根目录中创建一个名为
    web.config
    的新文件
  • 添加配置XML以设置父路径(下面的示例启用父路径、响应缓冲和会话状态)

    
    

  • 您不能在
    web.config
    文件中启用路径吗?