IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web avec .NET Discussion :

Http handler et IIS 5,IIS 6,IIS 7


Sujet :

Développement Web avec .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut Http handler et IIS 5,IIS 6,IIS 7
    Bonjour tout le monde ;

    j'ai un probleme avec httpHandler

    voila tout d'abord mon code

    classe http handler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    public class FileDownloaderHandler: IHttpHandler 
        {
     
     
            #region IHttpHandler Membres
     
            bool IHttpHandler.IsReusable
            {
                get { return false; }
            }
     
            void IHttpHandler.ProcessRequest(HttpContext context)
            {
               string  FileName= context.Request ["FileName"];
     
               //string MyFile = context.Server.MapPath("Produts/" + FileName) ;
                // If nomPhoto = "" OrElse Not File.Exists(nomFichier) Then
               FileInfo MyFile = new FileInfo(@context.Server.MapPath("Products/" + FileName));
               // "C:/inetpub/wwwroot/Uploaderfinal/Products/DERA/DERA V_1/0629015e-1f2b-439a-94f5-d65e0be59da8");//
               if (!MyFile.Exists )
               {
                   context.Response.Write(FileName + " File Not Found");
               }
               else
               {
     
     
                   FileInfo file = MyFile;// new FileInfo(MyFile);
                   //  context.Response.Write("Pas de fichier PDF avec le nom transmis")
                   //Else
                   FileStream Filestream = new FileStream(file.FullName , FileMode.Open);
                   //context.Response.AddHeader("content-type", "application/rar" );
                  // context.Response.Write(file.Extension.Replace('.', ' '));
                   byte[] buffer = new byte[Filestream.Length];
                   Filestream.Read(buffer, 0, buffer.Length);
     
                   context.Response.AddHeader("Content-Disposition", "attachment; filename=" + FileName);
                   // Add a HTTP header to the output stream that contains the
                    //content length(File Size). This lets the browser know how much data is being transfered
                   context.Response.AddHeader("Content-Length", buffer.Length.ToString());
                   // Set the HTTP MIME type of the output stream
                   //context.Response.ContentType = "application/"+file.Extension.Substring(1) ;
                   Filestream.Close();
                   // Write the data out to the client.
                   context.Response.BinaryWrite(buffer);
                  // context.Response.Write("Fin");
               }
     
            }
     
            #endregion
        }
    et voila mon web.config

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <configuration>
    	<appSettings/>
    	<connectionStrings/>
    	<system.web>
    		<authentication mode="Windows"/>
    		<identity impersonate="true"/>
    		<httpHandlers>
    			<add path="uploader" verb="*" type="FileUploaderHandler"  />
    			<add path="downloader" verb="*" type="FileDownloaderHandler"/>
    			<add path="Delete" verb="*" type="FileDelete"/>
    		</httpHandlers>
    		<httpRuntime executionTimeout="18000" maxRequestLength="100000"/>
    		<customErrors mode="Off"/>
    		<compilation debug="true" defaultLanguage="c#" /></system.web>
    	<system.webServer>
    		<handlers>
    			<add name="uploader.up_*" path="uploader" verb="*"     type="FileUploaderHandler" preCondition="integratedMode,runtimeVersionv2.0"/>
    			<add name="downloader.down_*" path="downloader"   verb="*" type="FileDownloaderHandler" preCondition="integratedMode,runtimeVersionv2.0"/>
    			<add name="Delete.del_*" path="Delete" verb="*"    type="FileDelete" preCondition="integratedMode,runtimeVersionv2.0"/>
    		</handlers>
    		<security>
    			<authorization>
    				<add accessType="Allow" users="?"/>
    			</authorization>
    		</security>
    	</system.webServer>
    </configuration>

    et voila la page d'appel (ce qu'une page de teste ni plus ni moin)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
          <form  id="form2" runat="server"  method ="post"  action="downloader" >
     
     
           <input type="text" name ="FileName" />
     
          <input id ="button3" type= "submit" value ="fg" />
           </form>
    c 'est une application pour telecharger (upload et supprimer ) des fichiers
    mon application marche tres tres bien en IIS 7 mais lorsque j'ai essaie de travailler avec IIS 5.1 j'ai un erreur de type

    HTTP 404 - Fichier introuvable
    Services Internet (IIS)
    et merci

  2. #2
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    Il n'est parfois pas évident de gérer les différences entre les versions d'IIS.

    Le mieux est d'abord de coder et valider pour IIS 5 ou 6, puis ensuite de modifier le code pour qu'il tourne sous IIS 7.

    En regardant le code de ton HttpHandler, je ne vois pas trop ce qui pourrait poser problème vu la simplicité de ce qu'il réalise. Une erreur 404 est claire, donc tu devrais tester (si tu ne l'as pas déjà fait) la valeur de (@context.Server.MapPath("Products/" + FileName)); et dans IIS 5 et dans IIS 7. Peut-être qu'il ne map pas correctement la demande.

    La structure des Virtual Directories est bien identique sur les deux serveurs ?

  3. #3
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    Bonjour,
    Merci NICOLAS ;

    mais je pense mon IIS ne identifie mon Httphandler (le downloader)

    car sinon il droit me renvoyé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     context.Response.Write(FileName + " File Not Found");
    FIlex File NotFound
    on cherchant j'ai trouve que il faut configurer mon IIS 5.1
    mais mois je suis amené à fournir un solution qui marche sur tous les serveurs IIS donc si il y'a une solution à coder si Préférable...

    et Merci encore

  4. #4
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Ok,

    Je pense qu'on est d'accord sur le fait qu'il s'agit d'un problème de configuration et non de code.

    Sur MSDN on parle des différences pour enregistrer un HTTPHandler entre les versions d'ISS :
    How you register an HTTP handler depends on the version of Internet Information Services (IIS) that hosts your application. For IIS 6.0, you register the handler by using the httpHandlers section of the Web.config file. For IIS 7.0 running in Classic mode, you register the handler in the httpHandlers section, and you map the handler to the Aspnet_isapi.dll file. For IIS 7.0 running in Integrated mode, you register the handler by using the handlers element in the system.WebServer section.
    Je suppose que tout tourne sous la version 2.0 du Framework ? Je n'ai jamais utilisé une version antérieure à IIS 6, donc je ne sais pas trop.

    Le mieux est de rechercher un vieux tutoriel qui indique comment enregistrer un HttpHandler dans IIS 5.

  5. #5
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    Merci NICOLAS,

    moi je cherche une méthode codable car je doit fournir un SETUP qui doit faire tous afin que le solution soit accepter par toutes nos clients

    j'ai lit l'article de NICOLAS HUMANN ..
    et j'ai teste son code et ça marche en IIS 5.1 son configuration je vu faire le même chose avec mon code...

    j’espère inchallah que ça va aboutir a un convenable solution ..


    merci bcp NICOLAS

  6. #6
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    bonjour

    voila j'ai effectue des faibles modife sur le code source de NICOLAS HUMANN

    voila la nouvelle form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form id="form1" runat="server" method = "post"  action= "download.down">
        <div>
            <img src="Image.axd?img=soleil.jpg" />
            <input type ="text" name ="FileName" />
            <input id ="dd" type ="submit" value = "send"/>
        </div>
     
        </form>
    et voila la web.config
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <httpHandlers>
          <add path="download.down" verb="*" type="FileDownloaderHandler"  validate="True"/>
          <add path="upload.up" verb="*" type="FileUploaderHandler"  validate="True"/>
          <add path="delete.del" verb="*" type="FileDelete"  validate="True"/>
          <add path="Image.axd" verb="*" type="ImageHandler"  validate="True"/>
        </httpHandlers>
    cette fois il me renvoie une erreur de type
    HTTP 405 - Ressource non autorisée
    Services Internet (IIS)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. http handler et web.config
    Par topolino dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/09/2009, 14h51
  2. [config iis] 2 tomcat, 1 iis
    Par CPI_en_mousse dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 13/07/2009, 00h18
  3. Réponses: 4
    Dernier message: 07/05/2007, 12h30
  4. Services IIS sous XP / Serveur IIS
    Par Philou1313 dans le forum ASP
    Réponses: 5
    Dernier message: 22/08/2006, 11h49
  5. [IIS] Utilisation PHP sous IIS
    Par steve o'steen dans le forum IIS
    Réponses: 4
    Dernier message: 23/03/2006, 15h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo