The asynchronous action method 'Login' returns a Task

Asynchronous Action Method Returns a Task, which cannot be Executed Synchronously

The error as given below.

System.InvalidOperationException' occurred in System.Web.Mvc.dll but was not handled in user code.

Additional information: The asynchronous action method 'Login' returns a Task, which cannot be executed synchronously.


The solution for the above error as given below in details.


Firstly, I have changed the application running process [5228] iisexpress.exe to [3840] ieexpoler.exe and run the application, error is resolved.


And the Second step below code changed.


var rc = new RequestContext( new HttpContextWrapper(Context), routeData);
controller.Execute(rc);

Replace above code by given below code.

((IController)controller).Execute(new RequestContext(new HttpContextWrapper(HttpContext.Current), routeData));

And In the 3rd Steps changed the name of login action

        [HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            //....... 
            // If we got this far, something failed, redisplay form
            return View(model);
        }

Replace the above action name Login to LoginUser.

        [HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> LoginUser(LoginViewModel model, string returnUrl)
        {
            //...... 
            // If we got this far, something failed, redisplay form
            return View(model);
        }

Please see below video for how to changed the application process.





ANIL SINGH

Anil Singh is an author, tech blogger, and software programmer. Book writing, tech blogging is something do extra and Anil love doing it. For more detail, kindly refer to this link..

My Tech Blog - https://www.code-sample.com/
My Books - Book 1 and Book 2

www.code-sample.com/. Powered by Blogger.
^