2015-12-10 24 views
7

Harici istemciler, Azure web sitemi (:) karakterini içeren iki nokta üst üste isabet ediyor. İstek geçerli değil, ancak eski IIS sunucumda 404 hatası veriyordu. Azure'da, aynı URL 500 hata verecektir. Günlükleri kontrol etmem gerektiğinden bu benim zamanımı harcıyor.Azure web siteleri, URL'de bir kolon olduğunda 500 hata atıyor

http://www.example.com/http:/www.example.com

sunucu tarafında bu davranışı kaçınmanın bir yolu var mı ve bunun yerine 4xx hata vermek: Bu istek bir örnektir? Unutmayın, bu sorun yalnızca Azure üzerindedir ve istekleri kontrol etmem.

+0

Daha net olmak gerekirse, şu: sadece iki noktadan ziyade bunu tetikleyen/dizisi gibi görünüyor. Yine de yanlış görünüyor. –

+0

Haklısınız, öyle. –

+0

Hiç bir çözüm buldunuz mu? Azure'da aynı konuyla ilgileniyorum. Googlebot, sitemize bu hatalı biçimlendirilmiş URL'lerle ve tetikleyici uyarılarla ulaşıyor. –

cevap

1

Bir .NET uygulaması çalıştırıyorsanız, buna ASP.NET HTTP çalışma zamanı, daha özel olarak istek filtreleme özelliği neden olur. URL yolu izin verilmeyen karakterler (<,>,*,%,&,:,\\,?) herhangi birini içerirse

, çalışma zamanı istisnası atar nedeniyle istisna IIS hata kodu döndürür 500.

System.Web.HttpException: Potansiyel olarak tehlikeli Request.Path değeri istemciden tespit edildi (:).

web.config dosyanıza configure izin verilmeyen karakter ekleyebilirsiniz.

<system.web> 
    <httpRuntime targetFramework="4.5" requestPathInvalidCharacters="*,%" /> 
</system.web> 

Ancak dikkatli olurum, çünkü bu tür değişikliklerin bazı güvenlik sonuçları olabilir.

+2

Maalesef, bu bir Azure web sitesinde yardımcı görünmüyor. TargetFramework özniteliğini 4.6'ya değiştirdim, çünkü burada kullanılan sürüm. –

+1

Hata, Azure web.config dosyasına bakmadan önce gerçekleşir. –

0

Azure'da KUDU Konsolunu kullanma applicationhost.xdt dosyasını D: \ home \ site dosyasına ekleyin.

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document- Transform"> 
<system.applicationHost> 
<sites> 
    <site name="%XDT_SITENAME%" xdt:Locator="Match(name)"> 
      <virtualDirectoryDefaults xdt:Transform="Insert" allowSubDirConfig="false" /> 
      </site> 
</sites> 

Bu işi yapar, ancak talihsiz bir yan etkisi yoktur, yani herhangi bir uygulama alt dizininde herhangi web.config gözardı edildi. Bizim tarafımız için, bu sitenin düzgün çalışmadığı anlamına gelen herhangi bir statik dosya yüklememe etkisi vardı.

Bu, kök düzeyinde tek bir web.config'e sahip herhangi bir site için iyi çalışır.

İlgili konular