本日志标题:有关Server.Mappath详细接触        [2004-3-5]

很多的朋友一而再,再而三的在Server.Mappath上卡壳,cnbruce也是一遍两遍地重复,还是不能全部解决,所以通过下面的举例,希望更多的朋友能恍然大悟,透彻明白过来。

先看图:



1,首先在本机E盘下面建立red文件夹,夹子内继续建立conn.asp文件,文件内容如下:


<%=Server.Mappath("database/cnbruce.mdb")%>
<%=Server.Mappath("/database/cnbruce.mdb")%>
<%=Server.Mappath("../database/cnbruce.mdb")%>


主要调试三种路径最后显示的结果。

2,在red文件夹下面建立文件夹database,该夹子内部存放cnbruce.mdb文件。
所以现在可以很肯定的知道数据库文件的绝对路径是:E:/red/database/cnbruce.mdb
以上应该没有问题吧,很明白的继续往下看,不明白的赶快学下windows操作系统 -_-!

3,为了进行比较对照,继续在red文件夹下面建立blue文件夹,该夹子内部存放同样的conn.asp文件


<%=Server.Mappath("database/cnbruce.mdb")%>
<%=Server.Mappath("/database/cnbruce.mdb")%>
<%=Server.Mappath("../database/cnbruce.mdb")%>



4,当然很重要的就是对red文件夹进行虚拟目录的设定。方法是在red文件夹上右键鼠标,选择“共享...”,弹出窗口中继续选择“Web共享”标签,选择“共享这个文件夹”,别名设为“red”。最后“确定”。



5,OK,现在就可以来调试两个conn.asp文件了。

先看red文件夹下面的,输入的URL应该是:http://localhost/red/conn.asp



观看结果可以知道其中只有一个正确,那就是
<%=Server.Mappath("database/cnbruce.mdb")%>

6,再来看red文件夹下的blue文件夹内的,URL:http://localhost/red/blue/conn.asp



观察结果,仍然有一个正确,那就是
<%=Server.Mappath("../database/cnbruce.mdb")%>

7,来总结下:为什么两次显示正确路径的不是同一代码呢?
很显然是相对路径的缘故。red文件夹下的conn.asp文件和database文件夹是兄弟关系,所以要找到cnbruce.mdb,就可以直接database/cnbruce.mdb

而blue文件夹下的conn.asp和database文件夹是侄叔关系,要找cnbruce.mdb,当然是../database/cnbruce.mdb,其中../就是到上一层。

8,那再看<%=Server.Mappath("/database/cnbruce.mdb")%>两次显示的都是一样的效果,都指向到c:\inetpub\wwwroot\下面了,那就是因为在"database"前面添加了"/",表示到达根目录,而本地的IIS虚拟根目录就是c:\inetpub\wwwroot\,这在默认Web站点属性里面有。



9,注意,再看!一直都是在本地的,那上传到网络上有是怎么样呢?

首先,要正确清醒地知道conn.asp连接文件和*.mdb数据库文件的地址关系
接着,选择正确的Server.Mappath转换方法

建议,最好不采用"/"路径。因为这涉及到虚拟主机和非虚拟主机的问题。

所谓虚拟主机,比如我本人的站点,其虚拟的根目录就是网站本身的根目录,不存在转向到c:\inetpub\wwwroot\的问题。

可以调试
http://www.cnbruce.com/red/conn.asp
http://www.cnbruce.com/red/blue/conn.asp

可以看出:采用"/"的时候的路径显示就是本站的根地址。

10,一定要注意!

万里长征已经到最后了,说什么也要支持住~!

我们虽然知道了conn.asp文件内容的写法,但在我们引用的时候应该要注意include包含文件的实质:被包含文件是在包含文件中执行显示的
所以,无论conn.asp放在哪里,无论conn.asp的内容如何,最后都是取决于包含该文件的文件位置和数据库的位置关系

[Edit on 2004-4-25 16:21:59 By cnbruce]

在百度搜索完整的有关Server.Mappath详细接触内容,或者用Google搜索相关的更多内容

By [cnbruce] at 10:28:27 | 评论 [54] | 浏览 [89370] | TrackBack| 返回顶部

About Comments
GOOD
By [xabre] at 2004-4-23 10:56:10
若把“主目录”设到E:盘
我想就不会出问题了吧
By [buck12] at 2004-4-25 10:48:07
Server.Mappath需要讲的这么复杂么?没必要
By [igonnawin] at 2004-5-26 13:39:01
Very Good!
By [thinker] at 2004-6-6 20:21:35
very good
By [good] at 2004-6-17 22:24:02
好人啊!
By [hacker0722] at 2004-8-2 14:38:55
cnbruce.那么你有没有考虑到,在iis6的情况下,是不支持(../)这样的父路径关系啊!那该怎么处理呢?
By [dnaliang] at 2004-8-12 10:02:50
不是不支持,是您没有开启IIS的../ 父路径。方法是:
IIS6==>站点属性==>主目录==>配置==>选项==>启用父路径
By [cnbruce] at 2004-8-12 10:12:46
o...8好意思,明白了.谢谢!
By [dnaliang] at 2004-8-12 10:20:31
你好!看了你的教程收益很大。想请教个问题:sql server 2000如何上传?我怎么也处理不好!还有分页程序,直接用在显示记录的时候我可以处理好,但是在搜索结果的页面上却不能分页。烦请在百忙之中给个解决的方案。谢谢了!
By [mimi9919] at 2004-10-10 10:49:40
sql server 2000不需要象ACCESS那样上传,注册到远程服务器,直接进行导入功能。关于搜索的问题,你看我的这个是不是?
http://www.cnbruce.com/database/
想要的话留个EMAIL,我把文件给你参考下:)
By [cnbruce] at 2004-10-10 14:20:27
感谢不尽了,我的Email:mimi9919@sohu.com
还有sql server 2000在做网站的时候是安装“客户端的工具”吗?
如何注册到远程服务器呢?我很菜的,请帮忙解决一下。
By [mimi9919] at 2004-10-13 9:30:43
我的网站怎么登录后一段时间不操作,就可以自动退出呢?麻你帮个忙。
网址:
http://www.aotubang.net
By [mimi9919] at 2004-11-5 9:06:57
一般是使用asa的session_onend事件把
By [Aether] at 2004-11-5 17:23:50
楼主说的那些实在是好啊。可是我指定到数据库的位置正确了,注:(观察N遍,确定是正确的。),但是在调试的时候为什么还是显示出错的状态呀,好无奈呀。。。


错误类型:
ADODB.Recordset (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
/eculs/index.asp, 第 5 行
By [无奈啊] at 2004-11-23 11:03:59
ADODB.Recordset(0x800A0BB9)-->sql语句出错(sql语句或conn语句未定义或对一个rs属性进行赋值时发生错误)
By [cn-bruce] at 2004-11-23 11:28:31
404错.我做的留言簿,数据库测试通过,不能显示
By [小鬼] at 2005-4-28 20:49:13
无法显示网页
试图访问的网页出现问题,无法显示。

--------------------------------------------------------------------------------

请尝试执行下列操作:

单击刷新按钮,或稍后重试。

打开 localhost 主页,然后查找与所需信息相关的链接。
HTTP 错误 500.100 - 内部服务器错误 - ASP 错误
Internet 信息服务

--------------------------------------------------------------------------------

技术信息(用于支持人员)

错误类型:
Provider (0x80004005)
未指定的错误
/mass/index.asp, 第 5 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; TencentTraveler ; .NET CLR 1.1.4322)

网页:
GET /mass/index.asp

时间:
2005年4月28日, 20:55:33


详细信息:
Microsoft 支持

By [小鬼] at 2005-4-28 20:57:16
By [11] at 2005-5-14 11:35:34
By [没事干] at 2005-5-22 15:24:04
错误类型:
ADODB.Recordset (0x800A0BB9)
/sanzhen/moban/1/gg.asp, 第 49 行
By [helpme] at 2005-5-28 11:17:24
各位大虾快帮助我一下,
这是什么错误啊?????晕倒


错误类型:
ADODB.Recordset (0x800A0BB9)
/sanzhen/moban/1/gg.asp, 第 49 行
By [helpme] at 2005-5-28 11:19:07
请问对FLASH连接数据库有没有知道的??
By [] at 2005-6-16 13:17:56
有没有
By [] at 2005-6-16 13:18:47
你好,我用了您的方法,conn如下:<%
// FileName="Connection_ado_conn_string.htm"
// Type="ADO"
// DesigntimeType="ADO"
// HTTP="false"
// Catalog=""
// Schema=""
var MM_conn_STRING = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\\www\\qianshi\\database\\d874hfs7s3.mdb"
%>
这个没有问题,但是我的搜索就不能用了,我把代码改为:
<%
' FileName="Connection_ado_conn_string.htm"
' Type="ADO"
' DesigntimeType="ADO"
' HTTP="false"
' Catalog=""
' Schema=""
Dim MM_conn_STRING
MM_conn_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;data source="& server.mappath("database/d874hfs7s3.mdb")
%>
这时搜索没问题,但是conn只能在搜索的时候用,添加表单等数据的时候不能用,提示找不到服务器。
我最终用了这个代码还是不行:
<%
' FileName="Connection_ado_conn_string.htm"
' Type="ADO"
' DesigntimeType="ADO"
' HTTP="false"
' Catalog=""
' Schema=""
var MM_conn_STRING = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\\www\\qianshi\\database\\d874hfs7s3.mdb"
%>
请各位高手帮忙解决一下,非常感谢!!!急。。。。
By [Maybe0] at 2005-8-17 23:03:42
不好意思,补充下,最终的代码是:
<%
' FileName="Connection_ado_conn_string.htm"
' Type="ADO"
' DesigntimeType="ADO"
' HTTP="false"
' Catalog=""
' Schema=""
Dim MM_conn_STRING
Dim Cn,Rs
Set Cn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject ("ADODB.Recordset")
Cn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\\www\\qianshi\\database\\d874hfs7s3.mdb"
%>

现在不能和数据库连接,也不能搜索,拜托!!!
By [Maybe0] at 2005-8-17 23:16:49
忘了说了,错误如下
出现了如下错误:
HTTP错误 500.100 内部服务器错误,-ASP错误

错误类型:
MICROSOFT JScript 编译错误 (0x800A03F7)
未结束的字符串常量
/www/qianshi/Connections/conn.asp,line 2, column 43 '
FileName="Connection_ado_conn_string.htm"

谢谢
By [Maybe0] at 2005-8-17 23:24:12
11
By [vigour_chen] at 2005-8-18 23:45:05
有高手在吗?
为什么我和上面一样的调试结果确不同呢
我的结果是::D:\red\blue\database\cnbruce.mdbC:\ASP.net\database\cnbruce.mdbD:\red\database\cnbruce.mdb
这个是为什么?
By [32] at 2005-8-29 21:41:07
用DW做好的网站在本地和局域网都能写入数据一切正常,但传到远程上就只能显示页面了而不能写入数据了,提示HTTP500内部服务器出错,服务器应该没有问题,我估计是不是数据库的连接出了问题,难道用DW做好了上传时还要改动连接吗?那位大哥能帮我吗?火急呀,多谢了
By [panyu] at 2005-10-31 19:52:36
sub command1_click
if x?12 then
y=2*5*x
end if
end sub
By [fang] at 2005-11-25 19:13:57
我是一个新手,我想问一下,为什么我做了一个简单通讯系统,主页上传后可以正常显示,但是导航条转到下一次,就不行了呢?提示错误类型:
Provider (0x80004005)
未指定的错误
/index.asp, 第 8 行
实在不知道是怎么回事.试了好多遍了.还请各位多帮帮忙!

用F12预览就出现这样子.错误类型:
Provider (0x80004005)
未指定的错误
/TMP8fxnqrqhhg.asp, 第 8 行

By [coffee] at 2005-12-19 15:23:33
请各位朋友将问题发到论坛 http://bbs.dw8.cn

[Edit on 2005-12-19 15:50:33 By cnbruce]
By [bruce] at 2005-12-19 15:47:16
恍然大悟!
By [anabas] at 2006-2-22 16:50:20
今天终于明白了,太谢谢了!!!!
By [木夕] at 2006-5-19 16:33:21
非常感谢!
By [Track] at 2006-5-22 16:59:20
我开始晕了~~`这叼网吧 连E:盘也不给进!我草
By [woyun] at 2006-6-8 1:25:44
我总是不明白上传会出现这样的问题
Microsoft JScript 运行时错误 错误 '800a1391'

'server' 未定义

/Connections/conn.asp,行 8
自己机子上运行没问题
By [andyao] at 2006-8-11 9:40:42
By [single5210] at 2006-9-11 22:03:22
第 5 行 set rs=server.createobject("adodb.recordset")
第 6 行 rs.open "select * from [order]" ,conn,1,3

ADODB.Recordset (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
/save.asp, 第 6 行
By [165115180] at 2006-10-6 12:05:17
谁可以帮忙解决一下上面的问题呀!
By [165115180] at 2006-10-6 12:06:08
ding
By [sadf] at 2006-11-10 20:37:47
你好,我的path.asp文件只写了<%=server.mappath("lmg835496.mdb"%>,执行结果是:Microsoft JScript 运行时错误 错误 '800a1391'

'server' 未定义

/path.asp,行 2
请问是什么原因啊?谢谢
By [lmg8354cn] at 2006-11-20 1:56:09
大家好,我也是遇上这样的问题了.在本机上测试了都可以看到有关数据库的内容,可是上传到空间里,却所有关数据库的页面全部显示不了,说找不到关键字...有人说是因为没有设置好相对路径..请问我该怎么办呢?我的conn.asp的代码如下:<%
' FileName="Connection_ado_conn_string.htm"
' Type="ADO"
' DesigntimeType="ADO"
' HTTP="true"
' Catalog=""
' Schema=""
Dim MM_conn_STRING
MM_conn_STRING = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/dataml/db1.mdb")
%>
请问我要怎么修改呢?请求好心的人帮帮我吧...我的QQ:104508556!一定很感谢你们的!
By [英儿] at 2007-2-25 21:42:38
我在其它页面中的是这样包含conn.asp, <!--#include file="../Connections/conn.asp" -->请问好心人帮帮我这到底要怎么改..
By [英儿] at 2007-2-25 21:45:03
By [gdgd] at 2007-3-8 8:26:48
讲得很明白啊,佩服佩服,多谢了
By [rabbitli] at 2007-4-11 9:42:58
一万个谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢……把困扰了我几天几夜的问题一下子解决了!
By [honian] at 2007-4-15 22:18:56
By [on_friday] at 2007-11-12 11:33:35
楼主,有没有其他的更加简单的直接dw里面设置的,我用dw连接数据库的时候全部都是绝对路径,弄得我花了几天的时间都搞不定,楼主可以给点建议吗?谢谢
By [t仔] at 2011-1-2 13:08:34


Post a Comment
呢称: 验证码: 
禁止笑脸转换 禁止UBB | 缩放输入框:6 5 | [Ctrl+Enter提交](1000个字符限制)