【发布时间】:2014-02-16 20:49:10
【问题描述】:
如何设置 ASP.Net Identity 以使用 SQL Server 数据库而不是 LocalDB?
如何自定义 ASP.Net Identity 以使用自定义数据层?
在 Web API .Net 4.5 中使用 Microsoft.AspNet.Identity.Core 1.0.0 和 EntityFramework 6.0.0
Web.config 更改:
<connectionStrings>
<add name="myAppDB"
connectionString="data source=.;Initial Catalog=mydb1;Integrated Security=SSPI;"
providerName="System.Data.SqlClient" />
</connectionStrings>
调用 api/account/register 时出错
{"Message":"An error has occurred.","ExceptionMessage":"An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string. Check the inner exceptions for details and ensure that the connection string is correct.","ExceptionType":"System.Data.Entity.Core.ProviderIncompatibleException","StackTrace":" at System.Web.Http.ApiController.<InvokeActionWithExceptionFilters>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerSeres.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__0.MoveNext()","InnerException":{"Message":"An error has occurred.","ExceptionMessage":"The provider did not return a ProviderManifestToken string.","ExceptionType":"System.Data.Entity.Core.ProviderIncompatibleException","StackTrace":" at System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection)
at System.Data.Entity.Utilities.DbProviderServicesExtensions.GetProviderManifestTokenChecked(DbProviderServices providerServices, DbConnection connection)","InnerException":{"Message":"An error has occurred.","ExceptionMessage":"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. Cannot create an automatic instance. See the Windows Application event log for error details.
)","ExceptionType":"System.Data.SqlClient.SqlException","StackTrace":" .....
和 Windows 应用程序事件日志
Cannot get a local application data path. Most probably a user profile is not loaded. If LocalDB is executed under IIS, make sure that profile loading is enabled for the current user.
【问题讨论】:
-
只需更改您的数据库连接字符串。
-
@Brendan 我做到了,但它仍然期待 LocalDB。
-
请发布您的 web.config 的相关部分。
-
@BrendanGreen 我已经更详细地更新了这个问题。并且连接是正确的,因为它是我在单元测试应用程序中使用的连接。
-
aspnet.identity dbcontext 使用什么 connectionString?
标签: asp.net-identity