Bu yanlış bilgiyi gören ortalama bir geliştirici iki sebep tahmin edebilir
1. Bağlantıda özel karakterler var
2. Bağlantı uzunluğu çok uzun(Görünüşe göre suç uzunluk değil, belirsiz, unuttum)
Hata görselinin adresi şöyledir: http://{host}/SearchService. svc/rest/pic600x320/png/kv3hcxmnCmISVvFKojNBGpkN44MRx71vV4v7Qu7ikclbic2vX5Axnm8RxwhLoWyehsSz4J%C2% A72F6h4eQgvkrbzuKGR6y7sszK1KUY75RqxylZMumapwVQttfllaSPXwoRGEeVexDqjmMZSERPquL3uLZbv6Vxdx52nRDUW90SVVYeqkHZbx2w3T1coqt2v036tfaZ%C2%A72D8GBlPbIVJuhSFU5GA8116z8FkV4%C2% A72kDtsxSXy9XTFIziTToRpbQEkp7497O6q99
Sonrasında karşılaşabileceğimiz hataların nedenlerini araştırmaya başladık
1. URL'yi kontrol edin, özel karakter yok (bu sebep hariç tutulur)
2. URL ilk bakışta çok uzun görünüyor, bu yüzden parametrenin yarısını silip sonra talep edelim. Sonuç olarak, bu başarılı olabiliyor ve sürekli karakter ekleyerek uzunluğun 339'u aştığı ve bu hatayı bildirdiği görülüyor, ayrıca 339'dan sonra özel karakter yok, yaniTemelde hata sebebinin URL'nin çok uzun olması olduğunu belirledik。
Sonraki adım ilgili sorunları çözmektir
Sonra çeşitli Baidu var, sorgu dizisinin uzunluk sınırını değiştirmekle ilgili yapılandırmayı kontrol edin
Sonra web.config'i değiştirin
1. httpRuntime düğümü altında maxQueryStringLength ve maxRequestLength yapılandırmalarını değiştirin
2. system.webServer düğümünü aşağıdaki şekilde değiştirin
Kaydedip beklentiyle çalıştırıyorum, hatalar hâlâ aynı ve görünüşe göre hiçbir işe yaramıyor
O sırada, neden etki göstermeyeceğini merak etmeye başladım, benim gibi birçok insan olabilir, IIS'nin küresel ayarını düşünürken, bu ayar geçersiz kalmaz mı, hala tüm belirlenmiş değerleri kullanıyoruz
Tahmin etme, sadece bir göz atma (checkFiltering system.webServer altında olduğunu unutmayın, yanlış düğüme bakmayın)
Eğer kapalıysa, overrideModeDefault değeri Redd'tir, yani yapılandırmamız sitemizin özel yapılandırmasına göre değişecektir.
Yani her şey normal, neden bir hata?!
Son olarak, stackoverflow'da benimsenmeyen bir geri dönüş dikkatimi çekti
bağlantıhttps://stackoverflow.com/questi ... is-invalid-in-iis-7
Kabaca olarak, talep henüz IIS'ye ulaşmadı ve işletim sistemi tarafından öldürüldü.
Bu sırada, Microsoft'un optik radyo teknik desteğine bağlı başka bir Google makalesi aradım
Adres şöyledirhttps://support.microsoft.com/zh ... ettings-for-windows
İki makalenin özü, kayıt defterini değiştirmemiz gerektiği ve muhtemelen kayıt defterinin aşağıdaki iki değeriyle değiştiriliyor
Sonra deneyin ve kayıt defteri CMD="regedit="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters sayfasına gidin
Boş alana sağ tıklayın ve resimde gösterildiği gibi Dword değerini seçin
UrlSegmentMaxLength adında yeni bir isim oluşturun, değeri 2048'e ayarlayın ve Tamam'a tıklayın
UrlSegmentMaxCount ayarı yukarıdakiyle aynı, değeri de Dword 2048, OK tuşuna tıklayın.
Değişiklik ancak HTTP servisi yeniden başlatıldığında geçerli olabilir
- Başlat'a tıklayın, Cmd yazın ve sonra OK'ye tıklayın.
- Komut satırında net stop http yazın ve Enter tuşuna basın.
- Komut isabetinde net start http yazın ve Enter tuşuna basın.
Sonra IIS'i yeniden başlatın. Tekrar dene, tamam, hata yok, mükemmel çözüm
|