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.

requestfilteringallow

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.

IISAllowDoubleEscape

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>

 

Tagged:

Yazar