0

I've created a new ASP NET application. When I try to register, I get this error - method not found:

 'System.Threading.Tasks.Task`1<!!0>
 System.Data.Entity.QueryableExtensions.FirstOrDefaultAsync(System.Linq.IQueryable`1<!!0>,
 System.Linq.Expressions.Expression`1<System.Func`2<!!0,Boolean>>)'.

Exception message:

 System.MissingMethodException: Method not found: 'System.Threading.Tasks.Task`1<!!0> System.Data.Entity.QueryableExtensions.FirstOrDefaultAsync(System.Linq.IQueryable`1<!!0>, System.Linq.Expressions.Expression`1<System.Func`2<!!0,Boolean>>)'.

The same error occurs in Visual Studio 2015, 2017 and 2019. I tried to update my NuGet Packages, but nothing changes.

Trace of the stack:

[MissingMethodException: Method not found: 'System.Threading.Tasks.Task`1<!!0> System.Data.Entity.QueryableExtensions.FirstOrDefaultAsync(System.Linq.IQueryable`1<!!0>, System.Linq.Expressions.Expression`1<System.Func`2<!!0,Boolean>>)'.]
   Microsoft.AspNet.Identity.EntityFramework.<GetUserAggregateAsync>d__67.MoveNext() +0
   System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start(TStateMachine& stateMachine) +94
   Microsoft.AspNet.Identity.EntityFramework.UserStore`6.GetUserAggregateAsync(Expression`1 filter) +146
   Microsoft.AspNet.Identity.EntityFramework.UserStore`6.FindByNameAsync(String userName) +525
   Microsoft.AspNet.Identity.UserManager`2.FindByNameAsync(String userName) +56
   Microsoft.AspNet.Identity.<ValidateUserName>d__14.MoveNext() +380
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +102
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +64
   Microsoft.AspNet.Identity.<ValidateAsync>d__13.MoveNext() +262
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +102
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +64
   Microsoft.AspNet.Identity.<CreateAsync>d__73.MoveNext() +517
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +102
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +64
   Microsoft.AspNet.Identity.<CreateAsync>d__79.MoveNext() +442
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +102
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +64
   System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() +29
   Project.Controllers.<Register>d__15.MoveNext() in C:\Users\Mateusz\Documents\Visual Studio 2015\Projects\testt\test3\Project\Project\Controllers\AccountController.cs:155
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +102
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +64
   System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult) +97
   System.Web.Mvc.Async.<>c__DisplayClass37.<BeginInvokeAsynchronousActionMethod>b__36(IAsyncResult asyncResult) +17
   System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32
   System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +50
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +228
   System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) +10
   System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34
   System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +26
   System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100
   System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27
   System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +36
   System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26
   System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
   System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +576
   System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +132
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +163

Error source:

Row 153:            {
Row 154:                var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
Row 155:                var result = await UserManager.CreateAsync(user, model.Password);
Row 156:                if (result.Succeeded)
Row 157:                {

It seems that the problem occurs in row 155. On my colleague's computer the same project works perfectly fine. Any ideas on how to fix it?

Matthew
  • 67
  • 1
  • 9
  • 4
    That isn't a complete exception message. Can you post the exception message text as well? We also might need to see some code in UserManager as well. As you question stands we don't have enough info to answer your question. – Greg Burghardt Jan 16 '20 at 01:15
  • I assume this is a MissingMethodException? If so, FirstOrDefault is only available in Net 4.5 Entity Framework assemblies so you will need to update to that. – timkly Jan 16 '20 at 07:14
  • I posted complete exception message – Matthew Jan 16 '20 at 13:45
  • Does this answer your question? [System.MissingMethodException: Method not found?](https://stackoverflow.com/questions/8058832/system-missingmethodexception-method-not-found) – Mun Jan 16 '20 at 14:17
  • The Linq method [FirstOrDefaultAsync](https://learn.microsoft.com/en-us/dotnet/api/system.data.entity.queryableextensions.firstordefaultasync?view=entity-framework-6.2.0&viewFallbackFrom=entity-framework-6) is only available with the version of `EntityFramework 6.2`. Ensure that you are using `Entity Framework version 6.2`. – 大陸北方網友 Jan 20 '20 at 05:54

1 Answers1

1

I've seen this sort of problem appear occasionally in solutions that contain multiple projects with different versions of an assembly being referenced where one version has a method but another doesn't. When the project is compiled, the assembly with the missing method gets copied into the bin folder, resulting in the code not being able to find the method at runtime, resulting in this exception.

In this case, it sounds like you might have something similar going on, and I would recommend doing the following steps to see if it helps:

  1. Close Visual Studio
  2. Delete all of the bin and obj folders for all the projects in your solution
  3. Delete the packages folder that contains the downloaded nuget packages
  4. Re-open the solution
  5. Ensure that all projects are set to the same .NET version and using the same package versions, specifically Entity Framework where this problem appears to originate
  6. Rebuild the solution

The goal here is to clean up anything that might be lingering from an old build, or if something was renamed, etc and to get everything back into a fresh state.

Mun
  • 14,098
  • 11
  • 59
  • 83