错误。 SQL网络接口,错误:26 - 找到指定的服务器/实例时出错

时间:2013-08-09 06:12:36

标签: asp.net sql-server-2008

当我尝试在默认的“我的ASP.NET应用程序”上创建帐户时,我遇到了上述错误。我在Windows 7操作系统上安装了Ms SQLServer 2008和Visual Studio 2010版本的新副本。为了测试DB Connection与ASP.net,我试图使用My ASP.NET Application创建帐户,我得到了以下错误详细信息。我是asp.net开发的新手。所以我不清楚如何解决这个错误。

  • 所有Sql服务都在运行。
  • 已启用MSSQLSERVER的所有协议。
  '/'应用程序中的服务器错误。网络相关或   建立连接时发生特定于实例的错误   SQL Server。服务器未找到或无法访问。校验   实例名称正确且SQL Server配置为   允许远程连接。 (提供者:SQL网络接口,错误:26    - 查找指定的服务器/实例时出错)描述:执行当前Web请求期间发生未处理的异常。   请查看堆栈跟踪以获取有关错误的更多信息   它起源于代码。

SQLExpress数据库文件自动创建错误:

连接字符串使用应用程序的App_Data目录中的数据库位置指定本地Sql Server Express实例。提供程序尝试自动创建应用程序服务数据库,因为提供程序确定数据库不存在。要成功检查应用程序服务数据库是否存在并自动创建应用程序服务数据库,必须满足以下配置要求:

如果应用程序在Windows 7或Windows Server 2008R2上运行,则需要特殊配置步骤才能启用自动创建提供程序数据库。有关更多信息,请访问:http://go.microsoft.com/fwlink/?LinkId=160102。如果应用程序的App_Data目录尚不存在,则Web服务器帐户必须具有对应用程序目录的读写权限。这是必要的,因为如果Web服务器帐户尚不存在,它将自动创建App_Data目录。

如果应用程序的App_Data目录已存在,则Web服务器帐户只需要对应用程序的App_Data目录进行读写访问。这是必要的,因为Web服务器帐户将尝试验证应用程序的App_Data目录中是否已存在Sql Server Express数据库。从Web服务器帐户撤消对App_Data目录的读取访问将阻止提供程序正确确定Sql Server Express数据库是否已存在。当提供程序尝试创建现有数据库的副本时,这将导致错误。需要写访问权限,因为在创建新数据库时会使用Web服务器帐户的凭据。     必须在计算机上安装Sql Server Express。     Web服务器帐户的进程标识必须具有本地用户配置文件。有关如何为计算机和域帐户创建本地用户配置文件的详细信息,请参阅自述文档。

堆栈追踪:

[SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)]
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +5063578
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +234
   System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity) +341
   System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject) +129
   System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout) +270
   System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +195
   System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +232
   System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +5077239
   System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +31
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +76

[HttpException (0x80004005): Unable to connect to SQL Server database.]
System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString) +137
   System.Web.Management.SqlServices.SetupApplicationServices(String server, String user, String password, Boolean trusted, String connectionString, String database, String dbFileName, SqlFeatures features, Boolean install) +94
   System.Web.Management.SqlServices.Install(String database, String dbFileName, String connectionString) +27
   System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName, String dataDir, String connectionString) +395

的Web.config:

    <?xml version="1.0"?>

<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
  <connectionStrings>
    <add name="ApplicationServices"
       connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
       providerName="System.Data.SqlClient" />
  </connectionStrings>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />

    <authentication mode="Forms">
    <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
    </authentication>

    <membership>
    <providers>
      <clear/>
      <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
         enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
         maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
         applicationName="/" />
    </providers>
    </membership>

    <profile>
    <providers>
      <clear/>
      <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
    </providers>
    </profile>

    <roleManager enabled="false">
    <providers>
      <clear/>
      <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
      <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
    </providers>
    </roleManager>

  </system.web>

  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

3 个答案:

答案 0 :(得分:4)

我管理修复安装Ms SQL Express版本的错误。只有在PC中安装了Ms SQL Server Express版本时,才能将数据库添加到App_Data文件夹。在安装Express Edition之前,没有什么对我有用,

答案 1 :(得分:1)

如果实例被调用MSSQLSERVERdata source不应该.\MSSQLSERVER

答案 2 :(得分:1)

您需要输入。\ MSSQLSERVER

试试这个:

抛出此问题的原因可能是服务器名称错误,禁用了远程连接 和防火墙阻止。 您能否按照以下步骤解决此问题?

  1. 检查运行SQL Server的服务器是否可以 无障碍。您可以使用ping命令来测试它。例如, ping或ping。 ping命令可能是 通过防火墙阻止,确保防火墙中已启用ICMP。 更多信息,请检查: http://technet.microsoft.com/en-us/library/cc739791%28v=ws.10%29.aspx#BKMK_4
  2. 选择合适的协议
  3. 根据内容相应地配置Windows防火墙 您选择使用的协议。有关如何的详细信息 要配置Windows防火墙以允许SQL Server,请检查 http://msdn.microsoft.com/en-us/library/cc646023.aspx
  4. 启用SQL Server浏览器服务
  5. 如果满足以下条件,则需要启用SQL Server Browser Services:

    SQL Server没有侦听默认的1433端口或者没有使用默认管道名称\。\ pipe \ sql \ query;

    在连接字符串中未指定相应的TCP端口或管道名称(例如Srv1 \ SQL2008,1500)。 如果已启用SQL Server Browser Services,则仍需要打开Windows防火墙中浏览器服务使用的UDP 1434端口。