Jaco Pretorius
Jaco Pretorius

Reputation: 24840

Enable Yellow Screen of Death on MVC 3

I had to take over an MVC 3 project from another developer. One of the first things he did was to stop the yellow screen of death so that all exceptions are only logged to a file. You now only get a generic message saying an error has occurred.

I would like to switch it back on (since it gets really annoying having to check through the logfiles the whole time) - how do I do this.

I checked through the web.config but I can't see where this happens.

I did try doing customerrors=off, but that didn't do anything. Also removed the global error handling attribute, didn't do anything.

On further clarification, it seems if an exception occurs in a controller I do get the yellow screen of death, but if it occurs in a (razor) view I just get a standard generic error.

You can see the web.config here You can see the global.asax here

Upvotes: 5

Views: 6575

Answers (4)

Fabio Milheiro
Fabio Milheiro

Reputation: 8474

None of this worked for me. Check if someone might have added code to clear the error in the application error event handler.

    protected void Application_Error(object sender, EventArgs e)
    {
        Exception lastException = Server.GetLastError().GetBaseException();

        Log.Error("Global.asax: WebApplication error", lastException);

        //****Server.ClearError();
    }

Upvotes: 1

Chad
Chad

Reputation: 1404

This question is a little old, but maybe this will help someone. In addition to setting <customerErrors mode="Off" />, also set this under <system.webServer>: <httpErrors errorMode="Detailed" />

<system.webServer>
   <httpErrors errorMode="Detailed"/>
</system.webServer>

Upvotes: 6

Filip Ekberg
Filip Ekberg

Reputation: 36287

In Global.asax you can remove filters.Add(new HandleErrorAttribute()); from public static void RegisterGlobalFilters(GlobalFilterCollection filters).

As pointed out in the comments - the problem was with a Custom Base controller overriding the OnException Method.

Upvotes: 4

Jan
Jan

Reputation: 16032

Normally you set this in web.config in the customErrors element under system.web. Just try to set mode=Off:

<customErrors mode="Off" />

Upvotes: 5

Related Questions