none
Error 404 al publicar los informes ReportViewer RRS feed

  • Pregunta

  • Buenos días,

    Tengo una aplicación ASP.NET MVC con una serie de informes que cuando la ejecuto desde el VisualStudio 2019 funciona correctamente. Cuando subo la aplicación a nuestro servidor todo funciona bien excepto cuando pulso sobre un botón, el cual llama a una pagina .aspx donde se encuentra el control ReportViewer  que muestra el informe, me aparece este error:

    Error HTTP 404.0 - Not Found
    Se ha quitado el recurso que está buscando, se le ha cambiado el nombre o no está disponible en estos momentos.

    El código del botón es el siguiente:

    [HttpPost]
    public ActionResult Informe(string txtOrden)
    {
          Session["orden"] = txtOrden;
          return Redirect("../PaginaInformeFormasPago.aspx");
    }

    La ruta física que aparece es:

    C:\inetpub\wwwroot\fpagcobs\Informe

    pero debería ser:

    C:\inetpub\wwwroot\ -->Aquí es donde esta la página .aspx 

    ¿Alguien sabe que puede estar pasando? Muchas gracias de antemano.

    viernes, 31 de enero de 2020 9:06

Todas las respuestas

  • hola

    Si estas con un modelo de routing de asp.net mvc navegar a un aspx no funciona, salvo que lo configures en el route del startup

    Adding Asp.Net WebForms into Asp.Net MVC Project and Vice Versa

    Lo que no entiendo es porque necesitas usar un aspx para un reporte si exiten helpers de asp.net mvc que funcionan perfectamente para reporting

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 31 de enero de 2020 13:58
  • Hola Leandro gracias por responder.

    He cambiado el RouteConfig.cs. Es este:

    public static void RegisterRoutes(RouteCollection routes)
            {
                routes.RouteExistingFiles = true;
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
                routes.IgnoreRoute("Content/{*pathInfo}");
                routes.IgnoreRoute("Scripts/{*pathInfo}");
                routes.IgnoreRoute("{WebPage}.aspx/{*pathInfo}");
                routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");
                routes.MapRoute(
                    "Default", // Route name
                    "{controller}/{action}/{id}", // URL with parameters
                    new { controller = "Home", action = "Login", id = UrlParameter.Optional } // Parameter defaults
                );
            }

    Sigue sin mostrar los informes cuando subo la aplicación al servidor y ademas no funciona la MasterPage.

    Segun lo que entiendo debería funcionar con el código que te viene por defecto en el archivo RouteConfig.cs que es este:

    public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
                routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Login", id = UrlParameter.Optional }
                );
            }

    Lo que no entiendo es porque necesitas usar un aspx para un reporte si exiten helpers de asp.net mvc que funcionan perfectamente para reporting

    Los hago así porque me dicen que lo haga con ReportViewer y es así como se me ocurrió hacerlo. Lo que no entiendo es porque si ejecuto la aplicación desde el VisualStudio funciona todo correctamente y si la subo al servidor no encuentra esas paginas .aspx


    • Editado 7777Luk7777 lunes, 3 de febrero de 2020 12:14
    lunes, 3 de febrero de 2020 12:09