Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Votre navigateur n’est pas pris en charge

Vous devez mettre à jour votre navigateur pour utiliser le site.

Mettre à jour vers la dernière version d’Internet Explorer

COMMENT FAIRE : Créer un gestionnaire HTTP ASP.NET avec Visual C# .NET

Ancien nº de publication de cet article : F308001
Cet article traite d'une version bêta d'un produit Microsoft. Les informations contenues dans cet article sont fournies " en l'état " et peuvent faire l'objet de modifications sans préavis.

Aucun support produit officiel n'est proposé par Microsoft pour ce produit bêta. Pour plus d'informations sur la procédure à suivre pour obtenir de l'assistance sur une version bêta, consultez la documentation fournie avec les fichiers du produit bêta ou effectuez une recherche sur le site Internet à partir duquel vous avez téléchargé la version.

Pour obtenir une version Microsoft Visual Basic .NET de cet article, consultez l'article307997.

DANS CETTE TÂCHE

Résumé
Cet article étape par étape explique comment utiliser Visual C# .NET pour créer un gestionnaire HTTP à la fois simple et personnalisé. Cet article explique comment créer, déployer et configurer le gestionnaire.

Retour au début de la page

Implémenter le gestionnaire

  1. Ouvrez Microsoft Visual Studio .NET. Dans Visual C# .NET, créez un nouveau projet de bibliothèque de classes nommé MyHandler.
  2. Définissez une référence pour l'assemblage System.Web.dll.
  3. Ajoutez la directive suivante à la classe :
    using System.Web;
  4. Renommez la classe SyncHandler.cs, puis modifiez la définition de classe pour traduire ce changement.
  5. Implémentez l'interface IHttpHandler. Votre définition de classe doit apparaître comme suit :
    public class SyncHandler : IHttpHandler
  6. Implémentez la propriété IsReusable et la méthode ProcessRequest de l'interface IHttpHandler. Puisqu'il s'agit d'un gestionnaire synchrone, renvoyez False pour la propriété IsReusable de sorte que le gestionnaire ne soit pas réservé.
    public bool IsReusable{   get {return false;}}public void ProcessRequest(HttpContext context){   context.Response.Write("Bonjour de la part du gestionnaire personnalisé.");}
  7. Compilez le projet.
Retour au début de la page

Déployer le gestionnaire

  1. Créez un nouveau répertoire nommé Handler sous le répertoire C:\Inetpub\Wwwroot.
  2. Créez un sous-répertoire nommé Bin dans le répertoire Handler nouvellement créé. Le chemin résultant est C:\Inetpub\Wwwroot\Handler\Bin.
  3. Copiez MyHandler.dll du répertoire Bin\Debug de votre projet dans le répertoire C:\Inetpub\Wwwroot\Handler\Bin.
  4. Suivez ces étapes pour marquer le nouveau répertoire Handler comme une application Web :
    1. Ouvrez Internet Services Manager.
    2. Cliquez avec le bouton droit sur le répertoire Handler, puis cliquez sur Propriétés.
    3. Dans l'onglet Répertoire, cliquez sur Créer.
  5. Suivez ces étapes pour créer un mappage de l'application pour le gestionnaire. Pour ce gestionnaire, créez un mappage pour le fichier Aspnet_isapi.dll associé à l'extension *.sync. Chaque fois qu'un fichier .sync est demandé, la requête est routée vers l'application ASP.NET qui exécute le code dans le gestionnaire.
    1. Cliquez avec le bouton droit sur l'application Handler Web, puis cliquez sur Propriétés.
    2. Dans l'onglet Répertoire, cliquez sur Configuration.
    3. Cliquez sur Ajouter pour ajouter un nouveau mappage.
    4. Dans la zone de texte Exécutable, tapez le chemin suivant :
      C:\WINNT\Microsoft.NET\Framework\<version#>\Aspnet_isapi.dll
    5. Dans la zone de texte Extension, tapez .sync.
    6. Assurez-vous que la case à cocherVérifier si un fichier existeest désactivée, puis cliquez sur OK pour fermer la boîte de dialogue Ajouter/Modifier le mappage d'extension de l'application.
    7. Cliquez sur OK pour fermer les boîtes de dialogue Configuration de l'application et Propriétés du gestionnaire.
  6. Fermez Internet Services Manager.
Retour au début de la page

Configurer le système

  1. Dans le répertoire C:\Inetpub\Wwwroot\Handler, créez un nouveau fichier nommé Web.config.
  2. Ajoutez le code suivant à Web.config :
    <configuration>   <system.web>      <httpHandlers>         <add verb="*" path="*.sync" type="MyHandler.SyncHandler, MyHandler" />      </httpHandlers>   </system.web></configuration>
    Dans l'attribut verb="*", nous indiquons au gestionnaire de traiter une requête qui utilise n'importe quel verbe (par exemple : POST, HEAD, GET, etc.). Si vous souhaitez que ce gestionnaire ne traite que la requête POST, modifiez cet attribut pour verb="POST".

    Dans l'attribut path="*.sync", nous indiquons au gestionnaire de traiter toutes les requêtes entrantes pour des fichiers dont l'extension est .sync.

    Dans l'attribut type="MyHandler.SyncHander, MyHandler", nous indiquons au gestionnaire qui traite la requête d'effectuer l'implémentation dans l'espace de noms MyHandler.SyncHandler ; cette classe réside dans l'assemblage MyHandler.
Retour au début de la page

Tester le module

Pour tester un gestionnaire, il n'est pas nécessaire qu'une page existe dans le système de fichiers. Par exemple, demandez le fichier Default.sync dans l'application Web du gestionnaire (http://<ComputerName>/Handler/Default.sync). Vous devez recevoir les résultats suivants :
Bonjour de la part du gestionnaire personnalisé.
Retour au début de la page

RÉFÉRENCES

Pour plus d'informations sur les gestionnaires HTTP, cliquez sur le numéro d'article ci-après pour afficher l'article correspondant de la Base de connaissances de Microsoft :
307985 BETA-INFO : Présentation des modules HTTP et des gestionnaires HTTP ASP.NET
Retour au début de la page












Propriétés

ID d'article : 308001 - Dernière mise à jour : 04/29/2003 09:19:00 - Révision : 3.0

  • Microsoft ASP .NET version bêta 2
  • Microsoft Visual C# .NET 2002 Initiation
  • kbhowto kbhowtomaster kbhttpruntime kbgrpdsasp KB308001
Commentaires
=1&t=">DI=4050&did=1&t=">='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> >ascript' src='" + (window.location.protocol) + "//c.microsoft.com/ms.js'><\/script>");