1

我安装了 Visual Studio 2008 Professional(使用 SP1 更新),然后我卸载了 SQL Server 2005 Express 并安装了 SQL Server 2005 Standard。

现在我无法将“SQL Server 数据库”添加到项目中 - 它说连接到 SQL Server 文件 (*.mdf) 需要 SQL Server Express 2005 才能正常运行。

不符合 SQL Server Standard 版本吗?

并且登录控件也不起作用
- Web 管理工具说无法连接到 SQL Server 数据库

还尝试使用 aspnet_regsql 命令行实用程序.. 不工作..(实际上我不知道通过“aspnet_regsql 命令行实用程序”创建 SQL Server 数据库后要做什么)

请在有人关闭此问题或标记删除之前为我的问题提供解决方案;P :)

4

1 回答 1

2

独立.mdf文件附加为数据库的功能确实在 SQL Server的Express版本中可用。

在任何其他情况下,您应该做的是在 SQL Server 实例上创建数据库,并通过其数据库名称而不是 .mdf 文件名来引用它。

为了创建 ASP.NET 成员资格和角色子系统所需的那些表和存储过程,您需要aspnet_regsql针对您的 SQL Server 实例使用该实用程序。你说那行不通-它怎么行不通?有没有报错??如果是这样:什么错误

有关如何使用它的详细信息,请参阅aspnet_regsql 上的 MSDN 文档。要创建 ASP.NET 成员资格和角色子系统,请使用:

aspnet_regsql -S (your server name here) -E -A mr

使用-E集成安全性(例如您当前的 Windows 登录)连接到 SQL Server - 当然,用户帐户需要足够的权限才能进行这些操作!如果您需要特定的 SQL Server 用户,则有两个-U (username) -P (password)参数可以实现此目的。

完成所有这些后,您还需要配置 ASP.NET 成员资格和角色子系统,以实际使用ASPNETDB在 SQL Server 上创建的新数据库 ( )。默认情况下,它们使用aspnetdb.mdf附加到 SQL Server Express 实例的文件。既然你已经改变了,你需要更新你的配置!在 MSDN 上详细了解如何执行此操作

第 1 步:将连接字符串添加到新创建的数据库

在您的web.configorapp.config中,将一个有效的连接字符串添加到您新创建的 ASP.NET 成员/角色数据库 - 类似于:

<configuration>
   <connectionStrings>
      <add name="ASPNETDB_Connection" 
           connectionString="Server=YourServer;database=aspnetdb;Integrated Security=SSPI;" />
  </connectionStrings>

第 2 步: - 为 ASP.NET 成员资格子系统添加有效配置,并引用您刚刚在第 1 步中添加的新连接字符串;就像是:

<configuration>
   <system.web>
      <membership defaultProvider="YourProvider" userIsOnlineTimeWindow="15">
          <providers>
             <clear />
             <add name="YourProvider" 
                  type="System.Web.Security.SqlMembershipProvider" 
                  connectionStringName="ASPNETDB_Connection"
                  applicationName="MyApplication"
                  enablePasswordRetrieval="false" enablePasswordReset="true"
                  requiresQuestionAndAnswer="true" requiresUniqueEmail="true"
                  passwordFormat="Hashed" />
          </providers>
      </membership>

第 3 步:对角色子系统执行相同操作:

<configuration>
   <system.web>
      <roleManager defaultProvider="YourProvider" enabled="true" cacheRolesInCookie="true" >
          <providers>
             <clear />
             <add name="YourProvider" 
                  type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"                 
                  connectionStringName="ASPNETDB_Connection"
                  applicationName="MyApplication" />
          </providers>
      </roleManager>
于 2011-10-08T13:15:39.640 回答