Как интегрировать Axd (Elmah) как компонент в сайт ASP.NET MVC

У меня есть Elmah и работает на моем сайте ASP.NET MVC, и я хотел бы интегрировать его интерфейс со страницами администрирования сайта. По умолчанию вы вызываете интерфейс с помощью url ~/elmah.axd, который работает вне системы MVC. При установке требуется, чтобы вы указали MVC игнорировать маршрут, чтобы не было контроллера или чего-либо еще, что бы знало об elmah. При установке предлагается конкретное игнорирование, даже если оно уже игнорируется по умолчанию:

public class MvcApplication : System.Web.HttpApplication {
    public static void RegisterRoutes(RouteCollection routes) {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.IgnoreRoute("elmah.axd");
...
}

Я хотел бы попробовать интегрировать elmah.axd в качестве компонента сайта. Я думаю иметь контроллер Elmah с представлением, которое использует помощник Futures Html.RenderRoute, но я не уверен, какие аргументы передать:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <h2>Elmah</h2>
    <% Html.RenderRoute(???); %>
</asp:Content>

Имеет ли это смысл - есть ли способ передать URL в Html.RenderRoute? Есть ли лучший способ, который не использует Html.RenderRoute?

2 ответа

Решение

Попробуйте это в своем View вместо этого:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <h2>Elmah</h2>
    <iframe src="<%= Url.Content("~/elmah.axd") %>" frameborder=no width=100% scrolling=auto>
    </iframe>
</asp:Content>

Или вы можете использовать это на своем сайте

Приложение журнала ошибок Elmah

Другие вопросы по тегам