Aaand eu estava terrivelmente errado. O IIS estava de fato respondendo com 404, mas uma seção <httpErrors>
entrou em cena e serviu a minha página "404.html" com o status HTTP 200.
Minha aplicação web .NET 4.0 está sendo executada no Windows Server 2008 no IIS 7.5 usando um pipeline integrado.
Quero ativar apenas os verbos HTTP "big four". De acordo com a documentação , isso deve funcionar:
<system.webServer>
<security>
<requestFiltering>
<verbs allowUnlisted="false" applyToWebDAV="true">
<add verb="GET" allowed="true" />
<add verb="POST" allowed="true" />
<add verb="PUT" allowed="true" />
<add verb="DELETE" allowed="true" />
</verbs>
</requestFiltering>
</security>
</system.webServer>
Mas, como você já deve ter adivinhado, isso não acontece. Fazer uma solicitação OPTION
ainda resulta em "HTTP 200 OK", assim como LOCK
, PROPFIND
e alguns outros. Tudo isso com o WebDAV não sendo instalado.
A remoção da linha <add verb="GET" ...
resulta na resposta correta do IIS com um erro HTTP 404.6 (Verb Denied).
Estou sentindo falta de algo óbvio aqui?
Tags iis request-filtering