2011-09-01 4 views
5

Mam aplikację, która miała akceptować niebezpieczne znaki z Salesforce. Są to% 0A i% 0D (do tej pory ...) i nie działają.IIS 7 Niepoprawna odpowiedź żądania, gdy w adresie URL istnieje 0AA

mam ustawione allowDoubleEscaping do true, requestValidationMode do 2.0, requestPathInvalidCharacters do BLANK, relaxedUrlToFileSystemMapping do true i maxRequestLength do 1024.

To nie zadziałało. Następnie próbowałem ustawić niestandardowy błąd dla 400, aby przekierować na tę samą stronę, nie przekazując jej danych wysyłanych przez Salesforce. Również nie działa.

Następnie próbowałem zrobić to samo poprzez sekcję o błędach IIS 7 i nadal nie działało.

Jak mogę:

  1. Pobierz aplikację, aby zaakceptować znaki?
  2. Czy aplikacja/IIS może przekierować na tę samą stronę w celu ręcznego wprowadzenia?

Wszystko to jest w aplikacji ASP.NET MVC 3, ale wątpię, że ma to znaczenie, ponieważ prawdopodobnie IIS zatrzyma ją, zanim jeszcze wywoła środowisko wykonawcze ASP.NET.

Byłbym wdzięczny za pomoc. Z góry dziękuję!

+0

Czy błąd pochodzi z programu ASP.NET lub IIS? Zazwyczaj można odróżnić, ASP.NET ma YSOD (żółty ekran śmierci), IIS 7 wygląda ... inaczej. – CodingGorilla

+0

Prawdopodobnie jest IIS, jest biały i mówi "Zły wniosek {HR} Błąd HTTP 400. Adres URL żądania jest nieprawidłowy." – Gup3rSuR4c

+0

@Alex Czy kiedykolwiek znalazłeś jakąś poprawkę? Mam dokładnie taki sam problem z% 0A i% 0D w adresach URL. – Geekman

Odpowiedz

1

Gdzie prawdopodobnie chcesz zajrzeć znajduje się w Menedżerze usług IIS, kliknij węzeł serwera (lub węzeł witryny), znajdź ikonę Request Filtering. Przejdź do zakładki URL i tutaj możesz zawsze zezwalać na określony adres URL lub zmienić ogólny sposób obsługi filtrowania adresów URL. Jestem pewien, że te ustawienia są również dostępne pod sekcją pliku web.config, ale nie wiem z góry, jakie byłyby wszystkie elementy ustawień i atrybuty (jestem pewien, że można wykonać wyszukiwanie i łatwo je znaleźć).

Być może będziesz musiał walczyć po ASP.NET po naprawieniu tego również.

0

Może trochę za późno, ale dla mnie zadziałało to poprzez zmianę skonfigurowanych wyjątków przy użyciu ustawienia rejestru AllowRestrictedChars (jak udokumentowano w https://support.microsoft.com/en-us/kb/820129). Domyślną wartością jest 0, zmieniłem ją na 1. Jeśli wartość jest niezerowa, Http.sys akceptuje znaki z znakami heksadecymalnymi w adresach URL żądań, które dekodują do zakresów U + 0000 - U + 001F i U + 007F - U + 009F.