Отображение встроенного представления ошибок для MVC 3 - PullRequest
2 голосов
/ 16 октября 2011

Я следовал этому учебному пособию , но я все еще получаю экран ASP.NET, в котором говорится, что для этого нужно включить Ошибки, или для отображения пользовательской страницы ошибок это сделать.

У меня естьзарегистрировал атрибут HandleErrorAttribute и добавил <customErrors mode="On" /> в web.config.Атрибут находится прямо в строке перед сигнатурой класса Controller.

Я все еще что-то упускаю?

EDIT

Я удалил атрибут из класса, как вы предложили,и это был результат.Ничего особенного не происходит, я не думаю.

web.config

</appSettings>
  <system.web>
    <customErrors mode="On" />
    <compilation debug="true" targetFramework="4.0">
      <assemblies>

Global.asax

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
        }

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );

        }

        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);

Ошибка *

Server Error in '/' Application.
Runtime Error
Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed.

Details: To enable the details of this specific error message to be viewable on the local server machine, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "RemoteOnly". To enable the details to be viewable on remote machines, please set "mode" to "Off".

<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="RemoteOnly"/>
    </system.web>
</configuration>


Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.

<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="On" defaultRedirect="mycustompage.htm"/>
    </system.web>
</configuration>

Ответы [ 2 ]

1 голос
/ 17 октября 2011

Если вы хотите увидеть пользовательскую страницу с ошибкой (которую вы разрабатываете сами), вам нужно создать страницу и обратиться к ней в элементе customErrors;

<customErrors defaultRedirect="GenericError.htm" mode="On" />

В приведенном выше примере вы должны создать страницу GernericError.htm в своем веб-приложении. Это будет отображаться в случае ошибки.

Если вы хотите увидеть подробную информацию о фактическом генерируемом исключении, вам нужно установить режим на mode="Off" или mode="RemoteOnly"

Кроме того, убедитесь, что вы используете правильную версию asp.net (то есть asp.net 4.0) в IIS для вашего приложения, в противном случае ваш файл web.config может быть проанализирован неправильно, что приведет к этой странице.

0 голосов
/ 17 октября 2011

Вот разговор о пользовательских видах Razor , который работает для меня и многих других.Попробуй это.Может быть полезно и вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...