Question

Est-il possible de définir un fichier .ashx comme page de démarrage (ou par défaut) d'une application Web? Si oui, comment fait-on?

Modifier : de bonnes suggestions. J'ai ajouté " Default.ashx " aux documents par défaut IIS et au "Document par défaut activé" sur le site Web, cependant, il n’affiche qu’une liste de répertoires même si j’ai désactivé la navigation dans les répertoires.

Toute autre suggestion serait appréciée. (IIS version 5.1)

Modifier : redémarrez IIS et cela fonctionne.

Question : puis-je également demander s'il est possible de définir la page de démarrage sur un fichier .ashx à partir de Visual Studio 2005? Je n'arrive pas à déboguer depuis Visual Studio après cela.

Réponse : dans les propriétés de l'application, une " action de démarrage " peut être sélectionné sous le " Web " languette. En fait, cela permet également la sélection du serveur / port et du débogueur à utiliser. Très cool.

Était-ce utile?

La solution

Ajoutez votre page ASHX et assurez-vous de la déplacer en haut de la liste.

Et dans IIS7, vous pouvez le spécifier dans web.config:

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

Plus d'informations dans cet article de blog

MODIFIER: À la découverte de @waves, vous devrez peut-être redémarrer IIS après la configuration.

Pour désactiver la navigation dans les répertoires, décochez la case "Navigation dans les répertoires". case à cocher:

.

Autres conseils

Configurez-le simplement sur le serveur d'applications par défaut, comme IIS, si vous souhaitez créer un gestionnaire pour ashx, vous pouvez le faire comme suit:

Alors, commencez par créer rss.ashx

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

Regardons maintenant la classe du gestionnaire:

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; }
        }

    }

}

Et là vous l'avez. Cela ressemble beaucoup au premier code que nous avons créé, n'est-ce pas? Quant à la mise en cache, vous pouvez la résoudre en accédant à l’objet Cache à partir de votre code, voir Appels context.Response.Cache.

la source du code est la suivante: aspcode.net

vous devrez peut-être simplement ajouter le fichier 'page'.ashx à la liste des fichiers par défaut dans les paramètres du serveur IIS. vous pourrez probablement le déployer comme n'importe quelle autre application Web.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top