2009-02-14 8 views
2

J'ai un gestionnaire HTTP mis en place dans le fichier web.config:HTTP problème Handler

 <add verb="*" path="*_*.aspx" type="SeoHandler"/> 

Et un SeoHandler.ashx de fichier à la racine de mon site web qui pointe vers un SeoHandler.ashx .cs dans le dossier App_Code (le site Web n'est pas un projet d'application Web). Lorsque j'exécute le site localement et que je tape une URL comme "dork_test.aspx", la requête est redirigée vers le gestionnaire où elle s'occupe ensuite des affaires.

Mais lorsque le site compilé est en cours d'exécution sur mon domaine, "dork_test.aspx" se traduira par:

Erreur du serveur dans l'application '/'.

La ressource est introuvable.

Description: HTTP 404. La ressource que vous recherchez (ou une de ses dépendances ) aurait pu être enlevé, son nom a changé, ou est temporairement indisponible. S'il vous plaît examiner l'URL suivante et assurez-vous que qu'il est orthographié correctement.

URL demandée: /dork_test.aspx

Pourquoi SeoHandler attraper la demande locale "dork_test.aspx", mais pas sur le serveur?

Je ne sais pas si cela compte, mais lorsque j'appuie sur l'URL SeoHandler.ashx sur mon domaine, le gestionnaire fonctionne comme il le devrait.

Est-il possible que l'hôte Web ait un paramètre IIS qui ignore mon entrée dans <httpHandlers>?

Répondre

1

Je suis capable de le faire fonctionner sur IIS 7. Utilisez-vous un fournisseur d'hébergement partagé qui a quelque chose comme URLScan installé? Pouvez-vous voir s'il n'y a pas de paramètres par défaut au niveau du serveur?

8

Vérifiez dans IIS sur le serveur que le gestionnaire .NET n'est pas configuré pour vérifier le chemin demandé existe physiquement:

  • Aller aux propriétés du site Web ou un répertoire virtuel
  • Onglet Répertoire
  • Cliquez sur "Configuration" dans la section inférieure
  • Trouvez l'extension pour .ASPX et cliquez sur modifier, il y a une case à cocher qui dit "Vérifier que le fichier existe".

Si cette case est cochée, .NET ne servira aucune requête qui ne correspond pas à un fichier physique situé au même emplacement.

+0

Bon sang, tous les admins pour ma compagnie d'hébergement sont allés jusqu'à lundi. Pouah. Je les dirigerai là quand je pourrai les avoir. Merci Rex! – core

+0

@Chris l'apprécie, mais vous devriez probablement attendre pour accepter ma réponse après que vous avez confirmé avec vos admins c'est le problème :) –

+1

+1 Il est tard. Mon déploiement a mal tourné. Décoché "Vérifier le fichier existe" - succès! Je vais au lit. –

1

Rex M a la bonne réponse, mais j'ai juste essayé quelque chose de similaire à gérer .jpg et il a échoué.

La case à cocher "Vérifier que le fichier existe" est très importante mais vous rencontrez toujours un problème avec l'autorisation pour ce dossier. J'ai ensuite essayé de changer le nouveau site web.config que j'ai ajouté pour ce dossier et ajouté

<authorization> 
         <allow users="*" /> 
    </authorization> 

Et cela a fonctionné. Il se passe donc quelque chose avec le processus d'autorisation qui ne me laisse pas gérer les requêtes .jpg. Et oui, je suis authentifié dans cette application et il échoue toujours si j'essaye de demander un .jpg.

Hope this résout pour prouver que votre gestionnaire fonctionne très bien, mais que, pour que vous devez avait un problème de sécurité ...

Questions connexes