2009-01-18 7 views
0

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

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

D'autres suggestions seraient appréciées. (IIS version 5.1)

Modifier - Redémarré IIS et cela fonctionne.

Question - Puis-je également demander s'il est possible de définir la page de démarrage à un .ashx à partir de Visual Studio 2005? Je ne peux pas sembler déboguer à partir de Visual Studio après avoir fait cela.

Réponse - Dans les propriétés de l'application, une "action de démarrage" peut être sélectionnée sous l'onglet "Web". En fait, cela permet également de choisir quel serveur/port et débogueur utiliser. Très sympa.

+0

Je pense que vous pouvez également définir des documents par défaut dans web.config comme indiqué dans ma réponse, le serveur web dev devrait respecter cela. – chakrit

Répondre

5

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

Et 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 this blog post

EDIT: Comme @waves découvert, vous devrez peut-être redémarrer IIS après la configuration .


Pour désactiver la navigation du répertoire, désactivez la case à cocher "Exploration de répertoire":

.

+0

J'ai perdu le contenu original des fichiers de capture d'écran, si quelqu'un peut faire de nouvelles captures d'écran, je peux trouver un meilleur hôte pour cela. – chakrit

0

qui se trouve juste sur le serveur d'application par défaut comme IIS, si votre point est de créer un gestionnaire ashx youu pourrait faire comme il suit:

Alors, commencez par créer rss.ashx

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

permet maintenant jeter un oeil à la classe 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. Ressemble assez au premier code que nous avons créé, n'est-ce pas? En ce qui concerne la mise en cache, vous pouvez le résoudre en accédant à l'objet Cache à partir de votre code, voir les appels context.Response.Cache.

source pour le code est: aspcode.net

0

vous aurez juste besoin d'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.

Questions connexes