在做一个毕业设计的电子商务系统。我本来的系统是win2008。然后装了VS2008。出现以下的错误。。然后装了VS2005。。也还是一样的错误。。然后我就装多一个系统win2003 R2的,双系统。。一样是出现这样的错误。。今天在同学电脑上(winXP),装IIS。装VS2005。都是新装的。。结果还是一样的错误。。我也根据网上的教法。Named Pipes协议启用了。。但是一样还是不可以。。我已经没有办法了,眼见着上交毕业设计的时间越来越近了。我急死了。。请各位帮下忙解决。。感谢!!!
以下是在浏览器预览的时候出现的错误提示。。
“/netShop”应用程序中的服务器错误。
--------------------------------------------------------------------------------在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)源错误: 
行 19:             String sql = "SELECT * FROM PType where parentId=0";
行 20:             SqlCommand command = new SqlCommand(sql, conn);
行 21:             conn.Open();
行 22:             SqlDataReader dr = command.ExecuteReader();
行 23:             DataList1.DataSource = dr;
 源文件: c:\Documents and Settings\YJH\桌面\ASP.NET完整版)\netShop\Default.aspx.cs    行: 21 堆栈跟踪: 
[SqlException (0x80131904): 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)]
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +173
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +199
   System.Data.SqlClient.TdsParser.Connect(Boolean& useFailoverPartner, Boolean& failoverDemandDone, String host, String failoverPartner, String protocol, SqlInternalConnectionTds connHandler, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject, Boolean aliasLookup) +1069
   System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +606
   System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +193
   System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +502
   System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +28
   System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +429
   System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +70
   System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +512
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +85
   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +89
   System.Data.SqlClient.SqlConnection.Open() +160
   Default.Page_Load(Object sender, EventArgs e) in c:\Documents and Settings\YJH\桌面\ASP.NET完整版)\netShop\Default.aspx.cs:21
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +13
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +45
   System.Web.UI.Control.OnLoad(EventArgs e) +80
   System.Web.UI.Control.LoadRecursive() +49
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3745 
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42  

解决方案 »

  1.   

    你连接的数据库是sql2005吗?他默认的是2005;
    你要看一下你的sql数据库连接语句!~呵呵
      

  2.   

    我是安装VS2005的,里面已经附带有SQL2005。。这样可以的吧?
    您说的sql数据库连接语句是不是在web.config里面的语句呢?
      

  3.   

    这种问题我遇见过,是sql数据库的问题,你装vs时也装了其自带的sqlexpress,产生混乱,建议安装虚拟机在虚拟机里单独装一个sql2000或sql2005就可以了,vs2008就是报sql2005连接错误什么的,如果你装的是sql2000他也报sql2005错误,他默认的是2005
      

  4.   

    在虚拟机中装SQL2005然后用我的vs2005连接虚拟机上的数据库?
    是这样么?
      

  5.   

    建议你用sql2000,可能你安装的时候会有错,在注册表中改一下就可以了。