将RavenUserStore与RavenDB问题结合起来

时间:2015-03-23 08:24:09

标签: asp.net-mvc ravendb

有没有人在MVC应用程序中使用RavenUserStore进行帐户管理?

当我使用旧版本的RavenDB.client(版本2.XXXX)时,我的Web应用程序与RavenUserStore完美集成。但是,一旦我将RavenDB.client软件包升级到版本3.0.3599,我在尝试登录时收到以下错误。

Method not found:'System.Threading.Tasks.Task`1<System.Collections.Generic.IList`1<!!0>> Raven.Client.LinqExtensions.ToListAsync(System.Linq.IQueryable`1<!!0>)'.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.MissingMethodException: Method not found: 'System.Threading.Tasks.Task`1<System.Collections.Generic.IList`1<!!0>> Raven.Client.LinqExtensions.ToListAsync(System.Linq.IQueryable`1<!!0>)'.

Source Error: 
Line 51:             if (ModelState.IsValid)
Line 52:             {                
Line 53:                 var user = await UserManager.FindAsync(model.UserName, model.Password);
Line 54:                 if (user != null)
Line 55:                 {

Stack Trace: 
[MissingMethodException: Method not found: 'System.Threading.Tasks.Task`1<System.Collections.Generic.IList`1<!!0>> Raven.Client.LinqExtensions.ToListAsync(System.Linq.IQueryable`1<!!0>)'.]
   AspNet.Identity.RavenDB.Stores.<GetUserByUserName>d__2.MoveNext() +0
   System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start(TStateMachine& stateMachine) +98
   System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start(TStateMachine& stateMachine) +61
   AspNet.Identity.RavenDB.Stores.RavenIdentityStore`1.GetUserByUserName(String userName) +286
   AspNet.Identity.RavenDB.Stores.RavenUserStore`1.FindByNameAsync(String userName) +165
   Microsoft.AspNet.Identity.<FindByNameAsync>d__d.MoveNext() +231
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess

有谁知道我做错了什么?我错过了什么吗?

非常感谢有关此事的任何信息。

感谢。

1 个答案:

答案 0 :(得分:1)

我终于设法找到并解决了问题。

问题是AspNet.Identity.RavenDB包是针对不同的Raven.Client版本编译的,所以你可以做的是从GitHub获取该包的源代码(上面提供的链接),更新RavenDB包(s)通过NuGet并重新编译。

这将为您提供一个漂亮而有光泽的AspNet.Identity.RavenDB.dll针对相同版本的Raven.Client编译。只需将此引用添加到您的项目中,您就应该好了。