ASP应用高手进来看啊!解决问题100分!!
我下载了一个asp编写的BBS站点源码,后台数据库用SQL Serever 2000,在网页里利用Sqloledb进行连接,在本机安装IIS进行调试的时候,死活连接不上,网页提示“数据库连接错误,请检查连接字串”,我的操作系统是Windows XP,SQL server 是Developer Editon ,后来在同学的Win2000 Server + SQL Server 2000 Enterprise Edtion下测试成功,再挪到我的WinXP下,还是不管用,大侠们谁知道这是怎么回事儿啊!!!???
郁闷Ing。。。
问题点数:100、回复次数:38Top
1 楼bushcong()回复于 2006-06-02 13:54:59 得分 0
连接字串应该没问题
因为在同学的Win2000 Server + SQL Server 2000 Enterprise Edtion下测试成功
就是在我的WindowsXP下连接不上Top
2 楼gxh7506(潇湘水云(.NET深圳程序员联盟群:22059542,QQ:78726784))回复于 2006-06-02 14:02:45 得分 0
我比较少用XP,以前用professional版的时候,SQL好象要打补丁才行.再听听楼下怎么说吧Top
3 楼jsnt_rd(C#ing...)回复于 2006-06-02 14:16:54 得分 0
看看IIS配置是否正确;
还有数据库的连接方式,推荐使用OLEDB方式!Top
4 楼qiangtian(tq)回复于 2006-06-02 14:20:40 得分 0
查看是否是防火墙引起Top
5 楼diyager(明白了就要结贴啊兄弟,做人要厚道(QQ5745027))回复于 2006-06-02 14:23:57 得分 0
I,确认你的sql服务是否正常先:
一.在SQL服务器的安装盘中找到MSDE这个目录,并且点击setup.exe安装它,过程简单直接下一步就OK了。
二. 重启系统WINDOWSXP,这下就可以看到SQL服务的图标出现了。
三. 再拿出SQL服务器版的安装光盘,直接安装客户端工具(这个不要多说吧?最简单的方法就是直接点击光盘根目录下的autorun.exe)
根据提示安装,自检过程中知道系统不是SERVER版,会提示只安装客户端工具。(哈哈,服务端我已有了)
四. 打开企业管理器,试用SA用户连一下看看,是不是发现SA用户登陆失败?因为你还没有与信任SQL SERVER连接相关联。还好这个只要对系统注册表稍加修改就可以啦:
在运行中输入regedit打开注册表编辑器,找到[HKEY_LOCAL_MACHINE\\SOFTWARE\\MICROSOFT\\MSSQLSERVER\\MSSQLSERVER],这个项里面有一个键值LoginMode,默认下,值是1,现在将值改为2,重启电脑。
五. 再打开企业管理,再连接试试,是不是OK了!
II,如果正常,还不能解决再回贴
Top
6 楼jinfeng003(靳奉山)回复于 2006-06-02 14:24:03 得分 0
检查SQL 的登陆方式是不是混合认证
还有,检查一下你的系统里边IUser...用户是否打开了权限
再就是杀毒软件,防火墙Top
7 楼bushcong()回复于 2006-06-02 14:25:21 得分 0
IIS应该怎么配置阿,我在XP下的配置和2000下一样啊,数据库我就使用的SQLOLEDB
应该不是防火墙的问题,一我没有安装防火墙软件,二我把WINXPSP2自带的防火墙也关了,还是连不上
郁闷阿!!!Top
8 楼bushcong()回复于 2006-06-02 14:41:44 得分 0
diyager:
我的SQL Server2000是Developer Edition的,有没有影响?按照你那个方法还是不惯用阿
jinfeng003:
SQL是混合认证方式
我再检查一下IUSer的权限
肯定不是杀毒软件和防火墙的问题Top
9 楼bushcong()回复于 2006-06-02 16:02:22 得分 0
To jinfeng003:
权限怎么个设置法阿??
好像还是不管用啊
怎么办??Top
10 楼showlin(六斤八两八)回复于 2006-06-02 16:20:57 得分 5
1、先检查你的IIS是否正常(随便先打开其他的ASP文件,不行自己随便写个response.write 1
2、检查你的connection字串,确定在你本机的sql服务器上有对应的登陆,以及该登陆对你的数据库权限足够,建议db_owner
3、还不行就把连接文件里所有的on error resume next去掉,把IE里的“显示友好的http错误”勾掉,错误信息发上来Top
11 楼bushcong()回复于 2006-06-02 16:35:16 得分 0
1、IIS正常,可以浏览其他无关ASP网页
2、确实有相应的登陆,可以登陆用企业管理起和查询分析器,sa的权限应该足够吧?
3、错误信息为
Microsoft OLE DB Provider for SQL Server (0x80004005)
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问。Top
12 楼spook768(Prowriter)回复于 2006-06-02 16:47:16 得分 5
地址是不是出錯了,改成localhost或者127.0.0.1如果已經分配了IP地址就用分配的那個地址Top
13 楼szlzc(咖啡加盐)回复于 2006-06-02 17:02:05 得分 0
xp使用不习惯,还是用2000吧Top
14 楼fenglik(风易)回复于 2006-06-02 17:03:39 得分 0
sql没配置好Top
15 楼bushcong()回复于 2006-06-02 17:05:55 得分 0
地址设置都尝试过了
我刚装的XP不要重装了吧~~~
SQL怎么配置才行啊??Top
16 楼bushcong()回复于 2006-06-02 17:51:49 得分 0
错误类型:
Microsoft OLE DB Provider for SQL Server (0x80004005)
[DBNETLIB][ConnectionOpen (Invalid Instance()).]无效的连接。
/Conn.asp, 第 27 行
我调整了SQLServer的TCPIP端口
调整了以后提示这个错误,是什么错误啊/?
怎么解决???Top
17 楼gjclown(透明姐姐)回复于 2006-06-02 18:48:03 得分 0
sql是装的服务器版吧?Top
18 楼shimingwen(rongren)回复于 2006-06-02 20:33:21 得分 0
看一下是不是磁盘权限问题Top
19 楼bushcong()回复于 2006-06-03 09:17:15 得分 0
我装Enterprise Editon装不上,装的是Developer Editon
和这个有关么???
磁盘IUSR权限我都设置成全部了
还不行啊Top
20 楼chinastorm(JOBS.CN)回复于 2006-06-03 09:40:05 得分 0
连接sql语句有问题吧
dim conn
set conn=server.createobject("ADODB.connection")
conn.open "PROVIDER=SQLOLEDB;DATA SOURCE=(local);uid=sa;pwd=1;DATABASE=数据库名"Top
21 楼bushcong()回复于 2006-06-03 09:50:25 得分 0
在Win2000Server下测试可用啊,所以不会是连接语句的问题
我的连接语句就是你写的一样的Top
22 楼jinfeng003(靳奉山)回复于 2006-06-03 09:52:51 得分 0
贴出来你的链接字符串看看~~~~Top
23 楼bushcong()回复于 2006-06-03 09:58:13 得分 0
*************************************************************************
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.open "driver={SQL Server};Server=(Local);uid=sa;pwd=1;Database=xp"
*************************************************************************
SqlLocalName ="(local)"
SqlUserName ="sa"
SqlPassword ="1"
SqlDatabaseName="xp"
ConnStr = "Provider=Sqloledb;User ID=" & SqlUserName & "; Password=" & SqlPassword & "; Initial CataLog = " & SqlDatabaseName & "; Data Source=" & SqlLocalName & ";"
*************************************************************************
这两种法都试过
都不行
Server的名字我用(local)、.、127.0.0.1都测试了,也不行Top
24 楼jinfeng003(靳奉山)回复于 2006-06-03 10:17:04 得分 0
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pubs;Data Source=.
里边的Persist Security Info是认证方式Top
25 楼jinfeng003(靳奉山)回复于 2006-06-03 10:18:58 得分 0
忘了写密码了
Provider=SQLOLEDB.1;Password=1;Persist Security Info=True;User ID=sa;Initial Catalog=pubs;Data Source=.
又想到一点,数据库和系统的名字一样,试试看改下行不行Top
26 楼yuyuxiaoyu(左大S,右小S,偶居中)回复于 2006-06-03 10:29:11 得分 0
区区一个连接搞这么罗嗦,你到底有没有建数据源阿Top
27 楼jinfeng003(靳奉山)回复于 2006-06-03 10:46:33 得分 0
楼上的,
OLE连接不用数据源~~~谢谢Top
28 楼gamestar1(海洋之星)回复于 2006-06-03 11:12:56 得分 0
Server名 用主机名试试Top
29 楼yuyuxiaoyu(左大S,右小S,偶居中)回复于 2006-06-03 15:54:03 得分 0
楼上楼上,那你知道 DataSource是什么意思吗,没用过吧,那就不提了;
1.
Set Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Provider=sqloledb; User ID=sa; Password=; Initial Catalog=数据库名; Data Source=网络标识中的计算机名"
Cnn.Open StrCnn
2.
Set Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Driver={SQL Server};Server=网络标识中的计算机名;UID=sa;PWD=;Database=数据库名"
Cnn.Open StrCnnTop
30 楼yuyuxiaoyu(左大S,右小S,偶居中)回复于 2006-06-03 15:57:46 得分 0
套路 !有什么好讲的! heng!Top
31 楼baicha123(白茶123)回复于 2006-06-03 16:14:25 得分 0
佩服佩服!~
路过一下这个问题我无语!~竟然可以研究这么长时间!~Top
32 楼yemingwy(小新)回复于 2006-06-03 18:22:29 得分 0
xp下的sql一定要打sql sp4,否则不允许远端连接Top
33 楼showlin(六斤八两八)回复于 2006-06-03 20:39:50 得分 0
错误类型:
Microsoft OLE DB Provider for SQL Server (0x80004005)
[DBNETLIB][ConnectionOpen (Invalid Instance()).]无效的连接。
/Conn.asp, 第 27 行
我调整了SQLServer的TCPIP端口
调整了以后提示这个错误,是什么错误啊/?
怎么解决???
------------------------------
没调整过sql的端口,就更不知道调整后链接字串怎么写了。。。。。
不然试着调回来看看Top
34 楼AloneSword(孤剑)回复于 2006-06-03 20:48:53 得分 85
检查sqlserver是否是sql server 的“服务器管理器”中的服务器的名称,有时候使用local是不好时的,因为这个名称问题。我以前遇到过,你更改看看!
Top
35 楼luxu001207(笨笨)回复于 2006-06-03 21:18:48 得分 0
xp系统问题就是多……原来我刚用asp的时候,在同学机器上运行好好的网站,到我机器上就死活运行不了,最后解决的方法是,重新安装系统。而且这个情况不只出现一次……Top
36 楼angelyujun(搁浅的鱼@南昌大学)回复于 2006-06-03 21:52:55 得分 5
贴出你的连接字符串,注意ServerName别填错了,有时候填127.0.0.1不行的,要填计算机名Top
37 楼bushcong()回复于 2006-06-04 07:25:47 得分 0
************************************************************************************
AloneSword(孤剑) ( ) 信誉:100 2006-06-03 20:48:00 得分: 0
检查sqlserver是否是sql server 的“服务器管理器”中的服务器的名称,有时候使用local是不好时的,因为这个名称问题。我以前遇到过,你更改看看!
************************************************************************************
我在sqloledb方式下把Data Source改成和SQLServer服务管理器里的服务器一栏的设置,可以正常访问了!!!!!!!!!
但是Driver={SQL Server}方式还是不行,有什么解决办法么??
Top
38 楼bushcong()回复于 2006-06-04 07:31:01 得分 0
刚才又测试了一下,把SQL Server数据库名字里的机器名改成127.0.0.1
即原SQL Server名称“MM\MYSQLSERVER”,现改成“127.0.0.1\MYSQLSERVER”,作为连接字串的Server或Data Source,就可以正常访问了
问题得以解决。多谢各位了!!!Top




