我在本机上开发Asp.net应用程序时,数据连接总是出问题,用的VS中向导生成的数据连接竟然在招待open()方法时竟然提示出错如下:
  System.Data.SqlClient.SqlException: 用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败
//
其中自动生成的连接代码如下
this.sqlConnection1.ConnectionString = "workstation id=\"WHUT-QKYONG\";packet size=4096;user id=sa;integrated security=SSPI" +
";data source=\"WHUT-QKYONG\";persist security info=False;initial catalog=GadgetsWa" +
"rehouse";//
奇怪的是;我用同样的方法在别人机器上很容易的就调试通过,且可以用一个DataGrid控件就能显示出数据库中一个表的内容;而我在我的机器上用同样的方法生成一个Windows应用程序时也能用DataGrid控件正确的显示数据库中内容,各位能给我解决一下吗?(我不想重装数据库呀,也想知道为什么,解决立马给分!!)
也给出我用来测试的一些代码this.sqlConnection1.Open();
DataSet ds=new DataSet();
SqlDataAdapter da=new SqlDataAdapter("select * from products",this.sqlConnection1);
da.Fill(ds,"products");
this.sqlConnection1.Close();
this.DataGrid1.DataSource=ds;
this.DataGrid1.DataBind();
(我想应该与这无关,因为
行 26:  this.sqlConnection1.Open();就出错了)

解决方案 »

  1.   

    <add key="ConnectionString" value="workstation id=HL;packet size=4096;user id=sa;data source=Region;persist security info=True;initial catalog=NCTCDIMS;password=huanglei" />
        
    这是我用的,在配置文件中,改成你的就行了。
      

  2.   

    'NT AUTHORITY\NETWORK SERVICE' 登陆失败能明显可以看出你连接SQL的时候使用的windows认证。改改数据库连接串,修改成汇合模式认证试试看。
      

  3.   

    1。将sqlserver中你的安全设置改成混合登陆模式
    2。你sqlserver中,没有aspnet这个用户,将这个用户加入即可
      

  4.   

    我以前试过一些改的方法,但是好像都不行,我觉得可能是数据库帐户与ASP.net这个帐户的问题,不然也不会有我说的些奇怪事,但我不知怎么解决?
      

  5.   

    to bitsbird  我按照你的方法试了一下,第二步我是在企业管理器中的安全性-登录上新建的一个登录,选择是aspnet帐户,不知是不是这样的,但还是和原来一样的出错
      

  6.   

    1. 在IIS中去掉这个Web Application的匿名访问
    2. web.config中加入<identity impersonate="true" /> 
      

  7.   

    asp.net的IIS的ISAPI程序不是asp_isapi.dll,而是w3wp.exe程序,此进程使用的帐户不是系统用户里面的ASPNET,而是Network Service。这个可以在Windows任务管理器中的进程栏可以看到。
    而微软出的示例程序,如PetShop和QuickStart,访问数据库的方式都是Windows身份验证。
    所以必须把你电脑上安装的所有Sql Server数据库的实例全部设定为Windows和Sql混合身份验证,而且必须在Sql Server的企业管理器内数据库的“安全性”-->“登录”内加入错误信息提示的“'NT AUTHORITY\NETWORK SERVICE' ”用户。而这个用户是无法使用正常方式添加的,方法如下:
    1 关闭所有程序
    2 打开“系统”快捷菜单-->“管理”
    3 在“本地用户和组”内的Administrators组上双击,出现添加属性对话框。
    4 单击“添加”按钮,出现添加用户对话框
    5 单击“高级”按钮,再单击“搜索”按钮。注:此'NT AUTHORITY\NETWORK SERVICE'用户为系统内置帐户,无法直接添加。
    6 在“搜索结果”内选择“Network Service”用户后,单击“确定”
    7 再次单击确定,则Network Service用户加入Administrators组,此用户就是Win2003的asp.net进程用户。
    8 下面把此用户设置可以访问Sql Server。关闭“计算机管理”,打开Sql Server的企业管理器。
    9 选择你要加入帐户的Sql Server实例,选择“安全性”,选择“登录”然后加入你刚才加入Administrator组的那个Network Service用户,然后选择此用户的权限,然后关闭企业管理器。
    10 确认你的Sql Server设置为Windows身份验证或混合验证
    11 打开QucikStart或者PetShop,可以正常访问。
      

  8.   

    将SQL的身份验证模式改为混合就可以了!如果一定要保存连接字符的话,荐议你单独用一个加密文件存放连接配置,然后做一个数据连接测试的页面