net iis7 enable deploy aspx asp application asp.net iis-7 web-config

asp.net - iis7 - iis enable asp net



Establecer la página predeterminada en Asp.net (8)

¿Hay alguna sección o código que nos permita configurar la página predeterminada en web.config ?

Por ejemplo, cuando la gente visita por primera vez mi sitio web, quiero que vean CreateThing.aspx lugar de Default.aspx .

Las soluciones que conozco:

  1. Ponga esta línea de código => Response.Redirect("CreateThings.aspx") en el evento Default.aspx Page_Load , pero este método es realmente ingenuo.

  2. Podemos usar IIS (configuración de página predeterminada) pero quiero hacer lo mismo con la aplicación Asp.NET.

Si conoce una solución mejor, hágamelo saber.

Gracias por adelantado.

PD: La razón por la que estoy preguntando por Web.Config es que creo que Web.Config nos ayudaría con esto.

Editar : Me pregunto cómo el equipo de Microsoft .NET olvidó una cosa tan simple :)

Editar:

Esta podría ser otra solución por ahora:

<defaultDocument> <files> <clear /> <add value="Default.aspx" /> <add value="Default.htm" /> <add value="Default.asp" /> <add value="index.htm" /> <add value="index.html" /> <add value="iisstart.htm" /> </files> </defaultDocument>


Asigne default.aspx como ruta HttpHandler y redireccione a CreateThings.aspx desde HttpHandler.

<add verb="GET" path="default.aspx" type="RedirectHandler"/>

Asegúrese de que Default.aspx no exista físicamente en la raíz de la aplicación . Si existe físicamente, el HttpHandler no tendrá ninguna posibilidad de ejecución. El archivo físico anula la asignación HttpHandler.

Además, puede volver a utilizar esto para páginas que no sean default.aspx.

<add verb="GET" path="index.aspx" type="RedirectHandler"/>

//RedirectHandler.cs en su App_Code

using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary> /// Summary description for RedirectHandler /// </summary> public class RedirectHandler : IHttpHandler { public RedirectHandler() { // // TODO: Add constructor logic here // } #region IHttpHandler Members public bool IsReusable { get { return true; } } public void ProcessRequest(HttpContext context) { context.Response.Redirect("CreateThings.aspx"); context.Response.End(); } #endregion }


Había hecho todas las soluciones anteriores, pero no funcionó.

Mi página predeterminada no era una página aspx, era una página html.

Este artículo resolvió el problema. https://weblog.west-wind.com/posts/2013/aug/15/iis-default-documents-vs-aspnet-mvc-routes

Básicamente, en mi archivo / App_Start / RouteConfig.cs, tuve que agregar una línea:

public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.IgnoreRoute(""); // This was the line I had to add here! routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); }

Espero que esto ayude a alguien, me tomó un buen tiempo encontrar la respuesta.


Prefiero usar el siguiente método:

system.webServer> <defaultDocument> <files> <clear /> <add value="CreateThing.aspx" /> </files> </defaultDocument> </system.webServer>


Puede anular la configuración del documento predeterminado de IIS con web.config

<system.webServer> <defaultDocument> <files> <clear /> <add value="DefaultPageToBeSet.aspx" /> </files> </defaultDocument> </system.webServer>

O utilizando el IIS, consulte el enlace para referencia http://www.iis.net/configreference/system.webserver/defaultdocument


Si está utilizando la autenticación de formularios, puede probar el siguiente código:

<authentication mode="Forms"> <forms name=".FORM" loginUrl="Login.aspx" defaultUrl="CreateThings.aspx" protection="All" timeout="30" path="/"> </forms> </authentication>



si está utilizando la página de inicio de sesión en su sitio web vaya al archivo web.config

<authentication mode="Forms"> <forms loginUrl="login.aspx" defaultUrl="index.aspx" > </forms> </authentication>

reemplace su etiqueta de autenticación por arriba (donde index.aspx será su página de inicio)

y una cosa más escriba esto en su archivo web.config dentro

<configuration> <system.webServer> <defaultDocument> <files> <clear /> <add value="index.aspx" /> </files> </defaultDocument> </system.webServer> <location path="index.aspx"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location> </configuration>