小弟在做一个卖软件的网站,用的是三层架构,服务层放在IIS6.0的虚拟路径里,其他在本地文件夹,数据库是SoftMarket,而显示层的连接字符串是:
<connectionStrings>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Data Source=5B647617291447D\LOCAL;Initial Catalog=UserProvider;Integrated Security=True" providerName="System.Data.SqlClient"/>
    <add name="SoftMarketConnectionString" connectionString="Data Source=5B647617291447D\LOCAL;Initial Catalog=SoftMarket;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
服务层的连接字符串是:
<connectionStrings>
    <remove name="LocalSqlServer" />
    <add name="SoftMarket" connectionString="Data Source=5B647617291447D\LOCAL; Initial Catalog=SoftMarket; Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
但在调试的时候就出现了下面的错误,请各路英雄一定要帮帮小弟,小弟吃饭还是吃粥都靠大家了,你们是我最后的希望了:System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> System.Data.SqlClient.SqlException: 无法打开登录所请求的数据库 "SoftMarket"。登录失败。
用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败。
   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   在 System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
   在 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
   在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
   在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
   在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
   在 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
   在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
   在 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
   在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   在 System.Data.SqlClient.SqlConnection.Open()
   在 SoftMarketSrv.GetGategories() 位置 f:\编程开发(2008年7月12日)\ASPNET作业\SoftMarket\Service\App_Code\SoftMarketSrv.cs:行号 40
   --- 内部异常堆栈跟踪的结尾 ---

解决方案 »

  1.   

    <add name="SoftMarket" connectionString="Data Source=5B647617291447D\LOCAL; Initial Catalog=SoftMarket; Integrated Security=True" 
          providerName="System.Data.SqlClient" /> 
    改成这个看看。
    <add name="SoftMarket" connectionString="Data Source=.; Initial Catalog=SoftMarket; Integrated Security=True" 
          providerName="System.Data.SqlClient" /> 
      

  2.   

    连remote的机器,是不是要用sql认证方式啊?要不加用户名密码试试?
      

  3.   

    'NT AUTHORITY\NETWORK SERVICE' ?
    是不是权限问题啊?
    给数据库增加上面这个Network Serverice用户,设置它的权限为可读,有必要的话加上可写。
      

  4.   

    http://www.cnblogs.com/kevin-wu/archive/2006/11/21/567733.html
      

  5.   

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

  6.   

    我用的是SQL2005开发者版本,win2003,vs2005.刚才按照八楼的搞了搞不行;不过还是谢谢!
      

  7.   

    是不是sql服务器不允许远程访问哦
      sql外围配置工具里面 有个远程连接 选项 试看  ,
      

  8.   

    直接在服务器上登陆sql服务器可以不 
      

  9.   

    你的数据库是什么认证方式?混合还是SQL Server?
      

  10.   

    你现在使用的是集成认证方式的连接串。不行用server=localhost;database=dbname;uid=userid;pwd=password看看行不
      

  11.   

    服务器身份验证是:windows身份验证模式。集成认证模式和SQL认证模式有什么不同?13楼兄弟的意见我试过了,奇怪的是,我用了ASP.NET2.0的那个FORMS验证,它的那个储存用户信息的数据库就能连上,而那个储存商品信息的SoftMarketr数据库就不能连上。
      

  12.   

    操作系统为 Win2003 r2,  SQL Server 2005 Windows 集成身份验证
    1.打开SQL Server Manegement Studio
    2.在 安全性 - 登录名 中 添加 NT AUTHORITY\NETWORK SERVICE
    3.双击该用户 在服务器角色 中 勾选 sysadmin 问题解决了!