【问题标题】:Provider Management : Could not establish a connection to the database提供者管理:无法建立与数据库的连接
【发布时间】:2014-10-29 18:25:27
【问题描述】:

在网站管理工具站点管理工具的提供程序管理器中测试 AspNetSqlProvider 时出现错误

我用 aspnet_regsql.exe 创建了 SQL Server 数据库

但仍然有同样的错误:

提供者管理:无法建立与数据库的连接。 如果尚未创建 SQL Server 数据库,请退出网站管理工具,使用 aspnet_regsql 命令行实用程序创建和配置数据库,然后返回此工具设置提供程序。

我有 SQL Express 2012、VS Ultimate 2013 和 windows 8。

我遵循的程序

1- 使用会员创建新网站:[http://msdn.microsoft.com/en-us/library/879kf95c(v=vs.90).aspx][1]

2- 当我到达 ASP.NET 配置时。 https://www.youtube.com/watch?v=b9o1ZExV5Jg

3- 使用aspnet_regsql.exe 向导 创建新数据库aspnetdb(我使用了与SQL express 服务器相同的SQL 身份验证凭据)。

4- 启用 TCP/IP 和名称管道

5- ** SQL 服务器和浏览器正在运行**

还有我的 cofig.web 文件;

<connectionStrings>
 <remove name="LocalSqlServer"/>
 <add   name="LocalSqlServer" connectionString="data source=SAHARPC\\SQLEXPRESS;Initial Catalog=aspnetdb;Integrated Security=true;AttachDBFilename=C:\Users\Saharhp\Documents\Visual Studio 2013\Projects\web44\App_Data\aspnetdb.mdf;User Instance=true" 

providerName="System.Data.SqlClient"/>

ma​​ching.config

中也是如此

这就是我所做的所有步骤。仍然是同样的错误(安全选项卡工作正常)。

有什么帮助吗?

我所有的 config.web 代码

 <?xml version="1.0" encoding="utf-8"?>

<configuration>
  <system.web>

      <authentication mode="Forms" >
          <forms loginUrl="login.aspx"
            name=".ASPXFORMSAUTH" />
      </authentication>
      <authorization>
          <deny users="?" />
      </authorization>
      <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
          <providers>
              <clear />
              <add
                name="SqlProvider"
                type="System.Web.Security.SqlMembershipProvider"
                connectionStringName="MySqlConnection"
                applicationName="MyApplication"
                enablePasswordRetrieval="false"
                enablePasswordReset="true"
                requiresQuestionAndAnswer="true"
                requiresUniqueEmail="true"
                passwordFormat="Hashed" />
          </providers>
      </membership>
    <compilation debug="true" targetFramework="4.5" />

    <httpRuntime targetFramework="4.5" />

  </system.web>


      <connectionStrings>
          <remove name="LocalSqlServer"/>
          <add   name="LocalSqlServer" connectionString="data source=SAHARPC\\SQLEXPRESS;Initial Catalog=aspnetdb;Integrated Security=true;AttachDBFilename=C:\Users\Saharhp\Documents\Visual Studio 2013\Projects\web44\App_Data\aspnetdb.mdf;User Instance=true"

         providerName="System.Data.SqlClient"/>  

      </connectionStrings>

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
        <bindingRedirect oldVersion="1.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" />
        <bindingRedirect oldVersion="1.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
<system.data>        
        <DbProviderFactories>
            <remove invariant="System.Data.SqlServerCe.4.0" />
            <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
        </DbProviderFactories>
    </system.data></configuration>

【问题讨论】:

  • 在运行 aspnet_regsql 时,您还有其他方法可以验证您是否创建了数据库?
  • 验证数据库是什么意思?我该怎么做?我没有验证它..你能告诉我一些步骤..谢谢
  • 他在询问文件 aspnetdb.mdf 是否存在于您尝试访问它的文件系统上。也可以用sql server management studio express打开吗?
  • 是的。它在项目文件夹中的 app_data 文件夹中可用。我的 PC 上没有安装 SQL Server Management Studio Express。我找不到适用于 Windows 8 的兼容版本!请继续帮助我,我昨天花了所有时间寻找没有任何好处-
  • 嗨,我现在首先检查了我的文件夹,我没有在 vs 2013 项目文件夹中找到 app_data 文件夹,而是在我的 wwwroot 文件夹中。我认为这是因为我在根据教程创建新网站时使用了 http 位置。那样可以么?或者我需要将文件夹更改为 vs 2013?

标签: sql asp.net database


【解决方案1】:

有问题。在您的&lt;membership defaultProvider="SqlProvider" 中,您使用的连接字符串名称与您使用的连接字符串名称不同,如下所示

<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
  ........
            connectionStringName="MySqlConnection" <-Here

应该是

connectionStringName="LocalSqlServer"

另外,尝试将您的连接字符串更改为以下,注意我省略了attachedDBfilename 属性

<connectionStrings>
 <Clear/>
 <add name="LocalSqlServer" connectionString="data source=SAHARPC\\SQLEXPRESS;Initial Catalog=aspnetdb;Integrated Security=true; providerName="System.Data.SqlClient"/>
</connectionStrings>

如果这不起作用,请尝试使用 SQL Server 的用户名/密码,而不是 Integrated Security 之类的

 <add name="LocalSqlServer" connectionString="data source=SAHARPC\\SQLEXPRESS;Initial Catalog=aspnetdb; uid=sqlusername; pwd=password"; providerName="System.Data.SqlClient"/>

【讨论】:

  • 我已将其更改为“LocalSqlServer”但还是一样?
  • 似乎这些设置对数据库连接没有任何影响。有没有使用asp.net创建会员网站的步骤或教程?
  • 来吧,我在回答中明确提到将您的连接字符串名称更改为LocalSqlServer。这正是错误所说的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-15
  • 1970-01-01
  • 1970-01-01
  • 2016-03-11
  • 2021-01-23
  • 1970-01-01
相关资源
最近更新 更多