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:
Ponga esta línea de código =>
Response.Redirect("CreateThings.aspx")
en el eventoDefault.aspx
Page_Load
, pero este método es realmente ingenuo.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 usa IIS 7 o IIS 7.5, puede usar
<system.webServer>
<defaultDocument>
<files>
<clear />
<add value="CreateThing.aspx" />
</files>
</defaultDocument>
</system.webServer>
http://www.iis.net/ConfigReference/system.webServer/defaultDocument
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>
Simplemente haga clic derecho en la página que desea que sea la página de inicio y diga "establecer como página de inicio".