我用设计器连接数据库的,在windows程序里面可以,在asp里面open时提示:
用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败。源错误: 行 23:  {
行 24:  // 在此处放置用户代码以初始化页面
行 25:             sqlConnection1.Open();//出错
行 26:  }
行 27: 我是写在page_load里面的,整了一下午都不行,我用的是windows nt认证,
而且我的数据库也是一直都用的NT认证,不过我的系统是win2003,sql server2000,
没有装sqlserver sp3补丁,是不是这个原因啊?
connectionstring:
workstation id=HSY;packet size=4096;integrated security=SSPI;data source="(local)";persist security info=False;initial catalog=最新洗浴
 

解决方案 »

  1.   

    你到控制面板的管理工具里面打开Internet信息服务管理,看看默认网站里面你的程序的安全属性,有没有选中集成Windows验证。
      

  2.   

    最好不用集成验证,可以创造一个用户的啊,用用户登陆上去啊!
    connectionstring="server=local;database=db;user=@userid;password=@pw";
      

  3.   

    是不是没有在SQL Server中为'NT AUTHORITY\NETWORK SERVICE'创建登录啊?
      

  4.   

    windows2003,与xp,和2000有一些不同!!
    按下面方式解决:
    第一步:把'NT AUTHORITY\NETWORK SERVICE' 添加到Administrator组中
    我的电脑-->右键-->管理-->本地用户和组
    选择“组”-->双击Administrators-->单击“添加”-->单击“高级”-->单击“立即查找”-->在下面的列表中选择Network Service用户-->两次单击“确定”-->加入。第二步 在企业管理器中加入NetWord Service用户
    打开Sql Server企业管理器-->选择数据库实例-->打开“安全性”节点-->选择“登录”-->在右边的列表中单击右键-->选择“新建登录”-->在“常规”选项卡中单击“名称”旁边的按钮“...”-->选择“Administrators”组-->单击下面的“成员”按钮-->选择“Network Service”-->单击“添加”按钮-->单击“确定”,返回“新建登录”对话框-->保证身份验证类型为“windows验证”和“允许访问”-->单击“确定”-->关闭“企业管理器”第三步
    重新运行asp.net程序,数据库连接字符串选择windows验证即
      

  5.   

    原因:
    Windows Server 2003版操作系统与Windows 2000不同,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' ”用户。而这个用户是无法使用正常方式添加的!
      

  6.   

    谢谢: tmeteor() 已经搞定!!