2012-12-28 95 views
3

我正在使用vs2012 Express构建webform。我正在使用ASP.NET Membership provider
在配置sqlmembershipprovider时,我在我的db上运行了下面的sql批处理。System.Data.SqlClient.SqlException:找不到存储过程'dbo.aspnet_CheckSchemaVersion

\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 
....... 

通过跟踪和答案对张贴在堆栈溢出类似的问题去,我注意到,我在一个错误的db:A运行两个sqlbatches。我在db:A上创建了类似的表,并更改了web congfig中的连接字符串。它的工作原理。但我正在处理的db:B是我要安装成员资格的地方,当我在此db:B上运行相同的sqlbatches时,未安装必要的对象。两个数据库位于同一台服务器上。
有没有人知道为什么,我下一步该做什么?

回答

6

设置成员资格提供程序数据库的正确方法是运行asp.net注册工具。它可以在下面的位置找到:

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

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

+0

感谢@ Spike.This是非常快的,现在easy.My登记工作 – kombo

+0

注意:这也适用于的LocalDB - 只是输入“(LocalDb)\ MSSQLLocalDB”并选择Windows身份验证。 – chakeda

相关问题