2011-07-11 11 views
5

Nie mogę otrzymać żądań HTTP OPTIONS w mojej aplikacji ASP.NET hostowanej w IIS6. Przetestowuję go za pomocą punktu przerwania debugowania (i dziennika plików) w metodzie Global.asax 's. Punkt przerwania nigdy nie zostanie trafiony, a klient otrzyma komunikat HTTP 403 Forbidden, zakładam, że bezpośrednio z usług IIS6 (GET s i POST s działa dobrze).Dlaczego żądania aplikacji OPTIONS nie pojawiają się w mojej aplikacji ASP.NET?

Próbowałem kilku rzeczy w web.config, w tym dodając następujący wiersz do obu sekcji, zarówno <system.webServer><handlers>, jak i <system.web><httpHandlers>.

<add name="OptionsHandler" verb="OPTIONS" path="*" type="System.Web.DefaultHttpHandler"/> 

Ja również grać z <system.webServer><security><requestFiltering><verbs> ustawień i allowUnlisted="true" i <add verb="OPTIONS" allowed="true"/>.

Ponadto nie używam narzędzia URLScan ani żadnych innych narzędzi, które mogłyby przechwytywać połączenia. W przypadku, gdy jesteś zainteresowany IISLogs:

2011-07-11 20:26:05 W3SVC1215124377 127.0.0.1 OPTIONS /test.aspx - 80 - 127.0.0.1 Mozilla/5.0+(Windows+NT+5.2;+rv:5.0)+Gecko/20100101+Firefox/5.0 403 1 0 

Czy istnieje sposób, aby otrzymać OPTIONS żądanie w aplikacji ASP.NET?

Odpowiedz

5

W przypadku IIS6 trzeba będzie wyraźnie włączyć komendę OPCJE w konsoli zarządzania, a także będzie trzeba zmapować ją do formatu ASP. NET. Dopiero wtedy będziesz mógł zarejestrować swojego handler'a w <system.web> i odebrać żądanie przetworzone przez ASP .NET.

(Uwaga, ustawienia <system.webServer> dotyczą tylko usług IIS7).

+0

Jak mogę włączyć to jawnie w konsoli zarządzania? –

+3

Znaleziono! Musisz wyraźnie zezwolić na czasownik dla każdego mapowania w sieci -> Właściwości -> Katalog domowy -> Konfiguracja ... -> Odwzorowania. THX –

+0

W przypadku MVC może być konieczne wykonanie dodatkowych konfiguracji: http://blog.stevensanderson.com/2008/04/options-for-deploying-aspnet-mvc-to-iis-6/ –

Powiązane problemy