Stworzyłem przykładowy projekt, aby uprościć mój problem. Mam ten prosty Handler:Obsługa HTTP działa z użyciem Cassini, ale nie z IIS 6
public class HandleThis : IHttpHandler, IRequiresSessionState
{
public void ProcessRequest(System.Web.HttpContext context)
{
// Score.aspx just says "success"
context.Response.Redirect("Score.aspx");
}
public bool IsReusable { get { return true; } }
}
Następnie w moim config, mam to:
<httpHandlers>
<add verb="*"
path="Survey"
type="HttpHandlerTest.HandleThis, HttpHandlerTest" />
Teraz kiedy uderzę http://server/Survey moje pożarów obsługi.
Jeśli zmienię projekt, aby działał z IIS 6, nie uruchomi się (404). Próbowałem ręcznie dodanie obsługi w IIS poprzez: - Właściwości witryny sieci Web - Home Directory - Konfiguracja - dodaj (przejdź do .dll mojej witryny), rozszerzenie: Survey, odznacz "Sprawdź, czy plik istnieje"
Zauważam, że IIS (tak pomocniczo) dodaje "." przed moim rozszerzeniem, więc trafiłem na stronę z "b.Survey"; nadal 404.
Z pewnością możliwe jest dodanie handler'a w IIS 6?
Kiedy to zrobię, otrzymuję kompletnie pustą odpowiedź. – dudeNumber4
Rozumiem, że w rzeczywistości nie przekierowano cię na Score.aspx? Czy przechodzisz do strony http: // serwer/ankieta/URL z mapowaniem wieloznacznym (*) w IIS? – etorrejon
Właśnie zdałem sobie sprawę z mojego problemu; po tym, jak zmieniłem ścieżkę do pliku wykonywalnego, aby wskazywała na aspnet, musiałem poprawić to, co miałem w mojej konfiguracji (zmieniłem rozszerzenie na ".wtf" w IIS, więc musiałem zmienić konfigurację na ścieżkę = "*. wtf " – dudeNumber4