2009-08-25 8 views
0

J'ai écrit un petit HttpHandler, qui fonctionne magnifiquement sur ma machine. Cependant, une fois qu'il a été déployé sur notre serveur de transfert, la requête a donné un 404. Je préfère généralement configurer HttpHandlers dans web.config, mais cela n'a apparemment pas fonctionné sur le serveur: je l'ai corrigé en créant un fichier .ashx contenant juste le référence à mon HttpHandler.HttpHandler ne fonctionne pas sur le site en utilisant différents port

Le fichier .ashx:

<% @ WebHandler class="MyNamespace.MyProject.MyHttpHandler" %> 

Le réglage web.config:

<httpHandlers> 
    <add verb="GET" path="myhandler.ashx" type="MyNamespace.MyProject.MyHttpHandler"/> 
</httpHandlers> 

Je suppose que le problème est causé par le serveur à l'aide d'un port "spécial" (888, ne demandez pourquoi) pour le site Web. Peut-il être autre chose, que pourrais-je manquer? Pourquoi est-ce que je vois ce comportement sur le serveur? Le HttpHandler fonctionne bien sur ma machine locale avec la configuration juste dans web.config, et ici il est également servi à partir d'un port "aléatoire", c'est-à-dire http://localhost:61229/myhandler.ashx.

+1

Vérifiez simplement que IIS, sous 'Propriétés'->' Répertoire de base'-> 'Configuration' a l'extension 'ashx' correctement mappée ... –

Répondre

3

Il semble que le paramètre web.config ne soit pas trouvé.

Est-ce IIS 7 par hasard? Dans ce cas, assurez-vous de placer le gestionnaire dans le <system.webServer> et dans la section <handlers>.

+1

Excellent, leçon du jour: je ne savais pas que HttpHandlers devait être mis en place dans une section différente sur IIS7. Merci! :) –

+0

Et il y a même un outil astucieux dans IIS pour le configurer! –

0

Si vous utilisez IIS7 mais souhaitez conserver vos anciens fichiers de configuration IIS 6. En configurant le pool d'applications pour qu'il s'exécute en mode "Classique", le gestionnaire fonctionnera à nouveau.

Non recommandé, mais parfois, c'est une solution rapide et satisfaisante.

Questions connexes