MVC应用程序登录后重定向到错误页面,我不知道为什么

我有一个MVC应用程序,要求用户使用其Microsoft帐户登录,并且在localhost上进行测试时可以正常工作,但是在将用户登录后重定向到时http://{appname}.azurewebsites.net/home/error,将其发布到Azure时,由于我没有找到404,在我的家庭控制器上未实现错误方法。我的问题是,我不知道是什么导致应用程序重定向到此错误页面。尝试http://{appname}.azurewebsites.net/home在浏览器上手动输入只会再次重定向到错误页面。


我尝试在家庭控制器上创建一个错误方法,该方法只是在屏幕上显示一个“ hello”,并且确实发生了一些奇怪的事情,该应用程序一直在错误页面URL和Windows登录页面之间来回重定向,而没有实际打开其中任何一个(我可能会看到这些网址在浏览器上来回切换,但没有一个页面打开过,因为它在完成加载之前已重定向)。


然后,我将home控制器上的方法基本保留为空,如下图所示,仅保留了Visual Studio添加的默认内容,但同样的问题一直在发生。


[Authorize]

public class HomeController : Controller

{

    public ActionResult Index()

    {

        return View();

    }


    public ActionResult About()

    {

        ViewBag.Message = "Your application description page.";


        return View();

    }


    public ActionResult Contact()

    {

        ViewBag.Message = "Your contact page.";


        return View();

    }

}

在web.config上<customErrors mode="Off"/>,我右键单击错误页面,然后单击show source,在html之后列出了该异常堆栈跟踪:


[HttpException]: A public action method &#39;Error&#39; was not found on controller &#39;LogDatabaseApi.Controllers.HomeController&#39;.

   at System.Web.Mvc.Controller.HandleUnknownAction(String actionName)

   at System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState)

   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)

   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()

   at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)

   at System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller)

   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)

   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()


但这似乎只是说未找到home控制器中的错误方法,没有说为什么应用程序首先重定向到错误页面。实际上,我在正常运行的同一Web应用程序中有一个API控制器(不需要授权)。而且home控制器可以在localhost上完美运行,它可以在Azure上完成所有这些奇怪的工作。



叮当猫咪
浏览 223回答 1
1回答

慕运维8079593

显然,OWIN无法正确检测启动类,并引发了导致整个问题的异常。<add key="owin:AutomaticAppStartup" value="false" />在web.config文件中添加到appsettings中可以解决此问题
打开App,查看更多内容
随时随地看视频慕课网APP