我正在使用vs2012 Express
构建网络表单。我正在使用ASP.NET Membership provider
在配置sqlmembershipprovider
时,我在db上运行了以下sql批处理。
\WINDOWS\Microsoft.NET\Framework\v4.030319\InstallCommon.sql
\WINDOWS\Microsoft.NET\Framework\v4.030319\InstallMembership.sql
安装Membership.When我尝试在我的应用程序上注册新用户时收到以下错误消息:
异常详情:
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 congfig中的连接字符串。它工作正常。但正在工作的db:B
是我要安装会员资格的地方,当我在sqlbatches
上运行相同的db:B
时,没有安装必要的对象。这两个数据库都在同一台服务器
有没有人知道我为什么以及接下来应该做什么?
答案 0 :(得分: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