vs2008里调试的时候没发现什么报错,但放到IIS之后,一运行,调到某个页面报如下错误。“/cms”应用程序中的服务器错误。
--------------------------------------------------------------------------------用户 'PC-201012011415\ASPNET' 登录失败。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 用户 'PC-201012011415\ASPNET' 登录失败。源错误: 
行 35:             else if (connection.State == System.Data.ConnectionState.Closed)
行 36:             {
行 37:                 connection.Open();
行 38:             }
行 39:             else if (connection.State == System.Data.ConnectionState.Broken)
 源文件: d:\My Documents\Visual Studio 2008\WebSites\CMS\App_Code\DBHelper.cs    行: 37 堆栈跟踪: 
[SqlException (0x80131904): 用户 'PC-201012011415\ASPNET' 登录失败。]
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4844759
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392
   System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +35
   System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +144
   System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +342
   System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +221
   System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +189
   System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +185
   System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +31
   System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +433
   System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66
   System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +499
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +65
   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
   System.Data.SqlClient.SqlConnection.Open() +122
   DBHelper.get_Connection() in d:\My Documents\Visual Studio 2008\WebSites\CMS\App_Code\DBHelper.cs:37
   DBHelper.GetDataSet(String strSql, SqlParameter[] values) in d:\My Documents\Visual Studio 2008\WebSites\CMS\App_Code\DBHelper.cs:114
   Pages.GetAllCount() in d:\My Documents\Visual Studio 2008\WebSites\CMS\Pages.aspx.cs:40
   Pages.DisplaySource() in d:\My Documents\Visual Studio 2008\WebSites\CMS\Pages.aspx.cs:46
   Pages.Page_Load(Object sender, EventArgs e) in d:\My Documents\Visual Studio 2008\WebSites\CMS\Pages.aspx.cs:27
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627 

解决方案 »

  1.   

    用户 'PC-201012011415\ASPNET' 登录失败。
    不是数据库账户的问题就是权限的问题。
      

  2.   

    那VS中调试怎么可以通过,但放到IIS中怎么不通过啊? 提示如下代码中的connection.Open();这里有问题。
            get
            {
                string connStr = "server=localhost;database=CMS;Integrated Security=SSPI;";
                //解密            //connStr = DESEncrypt.Decrypt(connStr);
                if (connection == null)
                {
                    connection = new SqlConnection(connStr);
                    connection.Open();
                }
                else if (connection.State == System.Data.ConnectionState.Closed)
                {
                    connection.Open();
                }
                else if (connection.State == System.Data.ConnectionState.Broken)
                {
                    connection.Close();
                    connection.Open();
                }
                return connection;
            }
      

  3.   


    有2种可能性:
    一是楼上说的数据库连接字符串 写错了 ,这个就要楼主自己去检查下去了
    还有种可能,应该与IIS的配置权限有关系,需要在IIS中,权限部分,将ASP对应用户的权限加入即可
      

  4.   

    sqlserver2005的数据库smse里显示的名字是localhost (SQL Server 9.0.1399 - PC-201012011415\Administrator)我在VS代码里写的是string connStr = "server=localhost;database=CMS;Integrated Security=SSPI;";
      

  5.   

    Integrated Security=SSPI;";IIS 里面要UID=SA;pwd=****才可以访问
      

  6.   

    用sql方式登录别用windows集成验证
      

  7.   

    修改数据库连接字符串,使用sqlserver的登录名和密码
    在SQL Server中添加登录用户并给其相应数据库的权限
    SQL Server Management Studio Express,
    选择身份验证为“SQL Server和 Windows ”
    数据库下->安全性>用户>用户名和密码是否正确 
     
    连接字符串
      

  8.   

    修改数据库连接字符串,使用sqlserver的登录名和密码
    在SQL Server中添加登录用户并给其相应数据库的权限
    SQL Server Management Studio Express,
    选择身份验证为“SQL Server和 Windows ”
    数据库下->安全性>用户>用户名和密码是否正确 
     
    连接字符串
      

  9.   

    vs 调试默认是系统管理员帐号登录的sql吧     放到iis上  可不是了 是iis帐号、asp.net帐号  这个帐号是根本无法登录sql数据库的配置你的sql数据库  启用sa登录或者建立一个sql帐号
    源代码里用sql帐号登录  uid  pwd
      

  10.   

    Integrated Security=SSPI  
    你用VS调试的时候是以Windows账户登录
    你用IIS的时候以'PC-201012011415\ASPNET'     PC名称\ASPNET登录
    数据库认不出来给SQL SERVER中的相应数据库新建一个账户
    然后使用用户名密码登录,不要用集成验证
      

  11.   

    Integrated Security=SSPI 是集成身份验证...就会用当前进程用户登录,ASPNET是IIS 5的进程用户...显然你的SQL Server没有给ASPNET用户分配权限,改成SQL Server身份验证...
      

  12.   

    不好意思,那我现在这个SSIP登陆的,怎么改成要输入用户名和密码的形式呢?SQLSERVER2005