ASP.NET 连接 SQLServer 2000 登录错误

程序猿DD 东华大学 2009-03-02 11:52:56
一直都是用Oracle和MySQL,最近接手学长的一个学校的系统,遇到点问题,不知道有哪个朋友碰到过~困惑了几天了~

错误是出现在:
行 34:myConnection.Open();
报的是:用户 'PERSONAL-8FC78E\IUSR_PERSONAL-8FC78E' 登录失败。

web.config中配置的连接字段是:<add key="conn1" value="workstation id='WC-NB';packet size=4096;integrated security=SSPI;data source=(local);persist security info=False;initial catalog=doudou" />

启动ASP.NET服务,SQLServer服务,IIS中都配置没有问题,当与数据库建立连接时,即出现上面的错误。之后我去企业管理器的安全性中有3个名称分别是:
BUILTIN\Administrators
PERSONAL-8FC78E\Administrators
sa

他们都是System级别的角色

这个3个都与所报的用户'PERSONAL-8FC78E\IUSR_PERSONAL-8FC78E' 不符合。

开始一直没怀疑这个连接的正确性,因为这个系统是当前学校一直在用的,是我的学长做的。现在仔细看连接字段,有1个疑问:这个字符串中没有uid和pwd那他是以什么身份登录的呢?

为了测试下这个连接字段是否可用,我在C#命令行工程里试了一下,具体代码是这样的:
SqlConnection myConnection = new SqlConnection("workstation id='WC-NB';packet size=4096;integrated security=SSPI;data source=(local);persist security info=False;initial catalog=doudou");
myConnection.Open();
SqlCommand myCommand = new SqlCommand("select * from timesetting where type='7'", myConnection);
SqlDataReader sdr;
sdr=myCommand.ExecuteReader();
sdr.Read();
DateTime now = System.DateTime.Now;
DateTime startTime = System.DateTime.Parse(sdr["starttime"].ToString());
Console.Write(startTime);
myConnection.Close();

这个可以正确显示出startTime,说明这个连接是有效的,并且服务器也是在正常工作的。但是为什么在WEB里的时候缺发生了这样一个错误呢?

...全文
73 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjj_729 2009-03-02
帮顶……
回复
dawugui 2009-03-02
前两天.论坛有个帖,没钱买书就下吧,里面有专门讲asp.net和sql server开发的.
回复
程序猿DD 2009-03-02
[Quote=引用 6 楼 songrun 的回复:]
先确认下,到底有没有那个用户呢
[/Quote]

我问题描述上写了数据库里就3个用户,没有报错的这个用户的。但是连接字符串里也没有uid啊。
回复
自由的企鹅 2009-03-02
先确认下,到底有没有那个用户呢
回复
程序猿DD 2009-03-02
[Quote=引用 4 楼 orochi_gao 的回复:]
<connectionStrings>
<add name="conn1" connectionString="server=192.168.1.1; User ID=sa;Password=123456;database=doudou;Connection Reset=FALSE" providerName="System.Data.SqlClient" />
</connectionStrings>

改用混合验证方式。你这个是本地验证方式。
[/Quote]

书上写的这些方法都能连上的,但是这个是系统现在在用的代码,其中就没uid和pwd。我想知道的是为什么会产生这个错误。可以解释一下,错误原因么?还有那个用户,我数据库里根本就没有这个用户的。
回复
orochi_gao 2009-03-02
<connectionStrings>
<add name="conn1" connectionString="server=192.168.1.1; User ID=sa;Password=123456;database=doudou;Connection Reset=FALSE" providerName="System.Data.SqlClient" />
</connectionStrings>

改用混合验证方式。你这个是本地验证方式。
回复
程序猿DD 2009-03-02
图书馆里也都看了不少书了,也问过一些研究生学长,但是没能解决这个问题。找不出原因来。
回复
发动态
发帖子
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
社区公告
暂无公告