Problem
Yazılımınızda Custom Handler kullanıyorsanız bazı senaryolarda bu hataya rastlayabilirsiniz.
HTTP Error 404.11 - Not Found The request filtering module is configured to deny a request that contains a double space sequence.
Neden
Varsayılan olarak IIS web sunucusunda Request Filter modülü DoubleEscape özelliğini güvenlik dolayısı ile kapalı olarak getiriyor. Request Filtering özelliği, içerisinde + işareti bulunan adresleri kabul etmediği (reject) için bu hata ile karşılaşıyoruz.
Çözüm
DoubleEscape özelliğini aktif (allow) ederek sorunu çözebiliriz. Güvenlik sorunu oluşacağı için yapılacak işlemi aktif etmek istediğiniz domain için gerçekleştirmeniz gerekiyor.
CMD Üzerinden,
“domain.com” yazan kısma işlem yapılacak domaini yazıp uygulamanız yeterli.
%windir%\system32\inetsrv\appcmd set config "domain.com" -section:system.webServer/security/requestfiltering -allowDoubleEscaping:true
IIS ile,
IIS > Sites > Domain.com > Request Filterin > Edit Feature Settings..
alanından “Allow double escaping” işaretleyerek tamam’a basın.
Web.Config içerisinden
Web.Config yapılandırmanıza aşağıda ki kodları dahil ederek aktif edebilirsiniz.
<configuration> <system.webserver> <security> <requestFiltering allowDoubleEscaping="true"> </requestFiltering> </security> </system.webServer> </configuration>