Pregunta

¿Es posible configurar un archivo .ashx como página de inicio (o predeterminada) para una aplicación web? Si es así, ¿cómo se hace?

Editar : algunas buenas sugerencias. He agregado " Default.ashx " a los documentos predeterminados de IIS y "Documento predeterminado habilitado" en el sitio web, sin embargo, solo muestra una lista de directorios a pesar de que he desactivado la exploración de directorios.

Cualquier otra sugerencia sería apreciada. (IIS versión 5.1)

Editar : reinició IIS y funciona.

Pregunta : ¿Puedo preguntar también si es posible configurar la página de inicio en un .ashx desde Visual Studio 2005? Parece que no puedo depurar desde Visual Studio después de hacer esto.

Respuesta : en las Propiedades de la aplicación, una " Iniciar acción " se puede seleccionar en la "Web" lengüeta. De hecho, también permite la selección de qué servidor / puerto y depurador usar. Muy guay.

¿Fue útil?

Solución

Agregue su página ASHX y asegúrese de moverla al principio de la lista.

Y en IIS7, puede especificarlo en web.config:

<system.webServer>
    <defaultDocument>
        <files>
            <clear />
            <add value="my_default_page.ASHX" />
        </files>
    </defaultDocument>
</system.webServer>    

Más información en esta publicación de blog

EDITAR: Como descubrió @waves, es posible que deba reiniciar IIS después de la configuración.


Para deshabilitar la exploración de directorios, desactive la opción " Exploración de directorios " casilla de verificación:

.

Otros consejos

Simplemente configúrelo en el servidor de aplicaciones predeterminado como IIS, si su objetivo es crear un controlador para ashx, puede hacer lo siguiente:

Entonces, comience creando rss.ashx

<!--WebHandler Language="C#" Class="KBMentor2.RSSHandler"-->

Ahora echemos un vistazo a la clase de controlador:

RSSHandler.cs

namespace KBMentor2
{
    using System;
    using System.IO;
    using System.Web;


    public class RSSHandler : IHttpHandler
    {
        public void ProcessRequest (HttpContext context)
        {   
            context.Response.ContentType = "text/xml";
            context.Response.ContentEncoding = System.Text.Encoding.UTF8;

            string sXml = BuildXMLString(); //not showing this function, 
            //but it creates the XML string

            context.Response.Cache.SetExpires(DateTime.Now.AddSeconds(600));
            context.Response.Cache.SetCacheability(HttpCacheability.Public);
            context.Response.Write( sXml );
        }

        public bool IsReusable
        {
            get { return true; }
        }

    }

}

Y ahí lo tienes. Se parece bastante al primer código que creamos, ¿no? En cuanto al almacenamiento en caché, puede resolverlo accediendo al objeto Cache desde su código, consulte las llamadas context.Response.Cache.

La

fuente del código es: aspcode.net

es posible que solo necesite agregar el archivo 'page'.ashx a la lista de archivos predeterminados en la configuración del servidor IIS. probablemente podrá implementarlo como cualquier otra aplicación web.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top