System.Data.SqlClient.SqlException:找不到存储过程'dbo.aspnet_CheckSchemaVersion

时间:2012-12-28 09:31:17

标签: asp.net

我正在使用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时,没有安装必要的对象。这两个数据库都在同一台服务器 有没有人知道我为什么以及接下来应该做什么?

1 个答案:

答案 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