2012-02-23 3 views
1

Мой web.config настроен следующим образом. Мой обработчик живет в сборке под названием TestProject.Custom. Я звоню этому обработчику через пост jQuery, отлично работает в VS 2010 (конечно!), Но когда я выталкиваю его в IIS 7.5 или IIS 7, он выдает 404 о невозможности найти TestHandler.ashx. Не уверен, что мне не хватает.ASP.NET пользовательский HttpHandler в 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: Я зову этот обработчик с помощью JQuery и обработчик за формы аутентификации (который я не думаю, что это проблема):

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

как вы называете обработчика? –

ответ

1

Я думаю, что атрибут «путь» должен быть «TestHandler.ashx» вместо его текущего значения. Он должен соответствовать URL-адресу, который вы используете в jQuery. В противном случае ожидается 404.

+0

Так оно и было. Была и другая проблема, из-за которой она не работала. – codelove

0

404 обычно означает проблема с регистрацией, в основном она просто не может найти что-то для обработки входящего запроса.

Внутри узла добавления попробуйте добавить в конце следующий атрибут: resour ceType = "Unspecified"

Это указывает IIS не искать физический файл, когда он видит запрос для ashx. Я думаю, что это вызывает 404

+0

Unspecified - это значение по умолчанию, поэтому вы можете спокойно опустить этот атрибут, http://www.iis.net/ConfigReference/system.webServer/handlers/add –

+0

@Lex Li: хороший звонок ... по крайней мере, я получил правильное решение :-) – swannee

Смежные вопросы