2012-02-23 4 views
1

Mon web.config est configuré comme suit. Mon gestionnaire réside dans un assembly appelé TestProject.Custom. J'appelle ce gestionnaire via jQuery post, fonctionne bien dans VS 2010 (bien sûr!) Mais quand je le pousse vers IIS 7.5 ou IIS 7, il lance 404 sur le fait de ne pas pouvoir trouver TestHandler.ashx. Je ne sais pas ce que je manque.Personnalisé ASP.NET HttpHandler dans IIS 7, 7.5

<system.webServer> 
<validation validateIntegratedModeConfiguration="false" /> 

<handlers> 
    <add name="TestHandler" 
     verb="*" preCondition="integratedMode" 
     path="TestProject.Custom.HttpHandlers.TestHandler.ashx" 
     type="TestProject.Custom.HttpHandlers.TestHandler, TestProject.Custom"/> 

</handlers> 

Edit: J'appelle ce gestionnaire avec jQuery et le gestionnaire est forme derrière l'authentification (que je ne pense pas que le problème):

jQuery(function() { 
    jQuery.ajax({ 
     type: "POST", 
     url: "TestHandler.ashx", 
     data: { "test_data": "some test data" } 
    }); 
}); 
+0

comment appelez-vous le gestionnaire? –

Répondre

1

Je pense que l'attribut "path" devrait être "TestHandler.ashx" au lieu de sa valeur actuelle. Il doit correspondre à l'URL que vous utilisez dans jQuery. Sinon, 404 est attendu.

+0

C'était ça. Il y avait un autre problème qui l'empêchait de fonctionner. – codelove

0

404 signifie généralement une problème avec l'enregistrement, fondamentalement il ne peut tout simplement pas trouver quelque chose pour gérer la demande qui est entré.

À l'intérieur du noeud d'ajout, essayez d'ajouter l'attribut suivant à la fin: resour ceType = "Unspecified"

Cela dit à IIS de ne pas rechercher un fichier physique lorsqu'il voit la requête pour l'ashx. Je pense que cela cause le 404

+0

Unspecified est la valeur par défaut, de sorte que vous pouvez omettre cet attribut en toute sécurité, http://www.iis.net/ConfigReference/system.webServer/handlers/add –

+0

@Lex Li: bon appel ... au moins, j'ai eu le problème à droite :-) – swannee

Questions connexes