Mój plik web.config jest skonfigurowany w następujący sposób. Mój program obsługi znajduje się w zestawie o nazwie TestProject.Custom. Wywołuję ten program obsługi przez post jQuery, działa świetnie w VS 2010 (oczywiście!), ale kiedy wypchnę go do IIS 7.5 lub IIS 7, wyrzuca 404 o niemożności znalezienia TestHandler.ashx. Nie wiem, czego mi brakuje.

<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>

Edycja: dzwonię do tego handlera za pomocą jQuery, a handler stoi za uwierzytelnianiem formularzy (co nie wydaje mi się problemem):

jQuery(function () {
    jQuery.ajax({
        type: "POST",
        url: "TestHandler.ashx",
        data: { "test_data": "some test data" }
    });
});
1
codelove 24 luty 2012, 03:04

2 odpowiedzi

Najlepsza odpowiedź

Myślę, że atrybut „ścieżka” powinien mieć postać „TestHandler.ashx” zamiast jego bieżącej wartości. Musi być zgodny z adresem URL używanym w jQuery. W przeciwnym razie oczekiwany jest 404.

1
Lex Li 24 luty 2012, 09:37

404 zwykle oznacza problem z rejestracją, w zasadzie po prostu nie może znaleźć czegoś do obsługi otrzymanego żądania.

Wewnątrz węzła dodawania spróbuj dodać następujący atrybut na końcu: resourceType="Unspecified"

To mówi IIS, aby nie szukał fizycznego pliku, gdy zobaczy żądanie ashx. Myślę, że to powoduje 404

0
swannee 24 luty 2012, 09:28