Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从asp.net将aspnetdb.mdf连接到sql server 2008 R2的本地实例?_.net_Asp.net_Sql Server - Fatal编程技术网

如何从asp.net将aspnetdb.mdf连接到sql server 2008 R2的本地实例?

如何从asp.net将aspnetdb.mdf连接到sql server 2008 R2的本地实例?,.net,asp.net,sql-server,.net,Asp.net,Sql Server,我使用federation实用程序向解决方案中添加了一个安全令牌服务项目。然后,我将aspnetdb.mdb文件添加到我的sqlmembershipprovider存储项目中。 在服务器资源管理器中查看和测试连接时,连接成功。但是,当我运行解决方案时,我得到一个错误:26,在建立到SQL Server的连接时,发生了与网络相关或特定于实例的错误。 我做错了什么?我怎样才能解决这个问题 <add name="connectionstring" connectionString="D

我使用federation实用程序向解决方案中添加了一个安全令牌服务项目。然后,我将aspnetdb.mdb文件添加到我的sqlmembershipprovider存储项目中。 在服务器资源管理器中查看和测试连接时,连接成功。但是,当我运行解决方案时,我得到一个错误:26,在建立到SQL Server的连接时,发生了与网络相关或特定于实例的错误。

我做错了什么?我怎样才能解决这个问题

<add name="connectionstring"
     connectionString="Data Source=.;AttachDbFilename='C:\ClaimsEnableWebsite\ClaimsEnableWebSite_STS\App_Data\ASPNETDB.MDF';Integrated Security=True;User Instance=False;Context Connection=False"
     providerName="System.Data.SqlClient" />


编辑>>回答:



连接到SQL Server数据库文件(.mdf)需要在本地计算机上安装并运行SQL Server Express。

正如您所发现的,在任何“真实”版本的SQL Server上,不能使用
AttachDbFileName=
方法-这实际上只适用于使用SQL Server Express edition的开发工作

但是,您可以使用ASP.NET SQL Server注册工具(
aspnet\u regsql
),该工具与.NET framework一起安装在类似于
C:\Windows\Microsoft.NET\framework\v4.0.30319
的文件夹中(如果需要,请替换当前的.NET framework版本)在您选择的任何SQL Server数据库中创建这些表


有关详细信息,请参阅。

•如果您使用的是“real”SQL Server而不是Express版本,则必须运行aspnet_regsql.exe来生成安全数据库(默认aspnetdb)。您无法从ASP.ET网站管理员自动生成它。由于实用程序所在的目录有n个级别,因此我使用批处理文件: “c:\windows\Microsoft.Net\Framework\v4.0.30319”\aspnet\u regsql •默认情况下,完整SQL Server不允许将数据库放在系统的任何位置。相反,当您运行aspnet_regsql时,aspnetdb.mdf数据库(或您赋予它的任何名称)将在Sql Server的默认目录(在C\Program Files\Micrsofot Sql Server…\Data下)中生成。没关系。 注意:如果要使用网站App_数据目录中的本地数据库,请执行以下步骤。 1.确保该数据库不是由任何其他应用程序使用,而是由SQL Server Management Studio的单个实例使用。 2.展开“数据库”节点。 3.右键单击aspnetdb(或任何你称之为它的东西),然后选择Tasks->Detatch。请注意,消息列应为空,表示没有打开的连接,否则分离将失败

  • 单击“确定”分离数据库
  • 在Windows资源管理器中,导航到C“\Program Files\Micrsofot SQL Server…\Data并找到aspnetdb.mdb和aspnetdb_log.ldf文件
  • 从目录中剪切(或复制)这些文件
  • 在Windows资源管理器中,导航到新数据库所在的目录(例如,网站的App_数据文件夹)
  • 将数据库和日志文件粘贴到此目录中
  • 在SQL Server中,右键单击“数据库”节点并选择“附加”
  • 单击添加按钮
  • 导航到复制新数据库的目录,然后选择mdf(数据库)文件(例如aspnetdb.mdf)

  • 如果要为所有网站使用一个数据库进行安全保护,可以保留相同的名称。如果要为不同的网站使用不同的安全数据库,请将名称更改为唯一的名称

  • 单击“确定”
  • 单击“确定”
  • 如果右键单击Databases节点并选择Refresh,则应在SQLServerManagementStudio中看到新的安全数据库
  • •手动将所需代码添加到Visual Studio项目的Web.config文件的节中。我尝试过数百种不同的主题变体,但这似乎是唯一一种每次都有效的

    <system.web>
        <compilation debug="true" targetFramework="4.5"/>
        <httpRuntime/>
        <sessionState allowCustomSqlDatabase="true" 
                      sqlConnectionString="Data Source=JAYSDELL\MSSQLSERVER2008R;
                      Initial Catalog=aspnetdb;
                      Integrated Security=True"/>
        <pages controlRenderingCompatibilityVersion="4.0"/>
      </system.web>
      <connectionStrings>
          <remove name="LocalSqlServer"/>
          <add name="LocalSqlServer"
               connectionString="Data Source=JAYSDELL\MSSQLSERVER2008R;
                                 Initial Catalog=aspnetdb;
                                 Integrated Security=True"
               providerName="System.Data.SqlClient"/>
      </connectionStrings>
    </configuration>
    Obviously values for sqlConnectionString and Initial Catalog need to be tailored to the app.
    
    
    显然,sqlConnectionString和初始目录的值需要根据应用程序进行定制。
    
    现在,当您进入WEBSET->ASP.NET配置->安全时,您应该会看到以下内容

    成功