3

我正在使用vs2012 Express. 我正在使用ASP.NET Membership provider.
在配置中sqlmembershipprovider,我在我的数据库上运行了以下 sql 批处理。

\WINDOWS\Microsoft.NET\Framework\v4.030319\InstallCommon.sql
\WINDOWS\Microsoft.NET\Framework\v4.030319\InstallMembership.sql    

安装会员资格。当我尝试在我的应用程序上注册新用户时,我收到以下错误消息:

异常详细信息:
System.Data.SqlClient.SqlException: Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

Stack Trace:


[SqlException (0x80131904): Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'.]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +1769462
 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +5318578
.......

通过在堆栈溢出上发布的类似问题的跟踪和答案,我注意到我sqlbatches在错误的db:A. 我在 db:A 上创建了类似的表并更改了 Web 配置中的连接字符串。它可以工作。但是db:B我正在处理的是我想要安装成员资格的地方,当我sqlbatches在此运行相同db:B的时候,没有安装必要的对象。两个数据库都在同一台服务器上。
有谁知道为什么以及接下来我应该做什么?

4

1 回答 1

6

设置会员提供者数据库的正确方法是运行 asp.net reg 工具。它可以在以下位置找到:

"C:\Windows\Microsoft.NET\Framework\<FrameworkVersion>\aspnet_regsql.exe"

更多信息 http://msdn.microsoft.com/en-us/library/x28wfk74(v=vs.100).aspx

于 2012-12-28T09:51:40.807 回答