Jak skonfigurować sieć.config pozwalający na żądania dowolnej długości

Buduję witrynę, w której chciałbym utworzyć plik po stronie klienta z wartości elementu textarea.

Mam kod aby to zrobić, ale dostaję ten błąd

Błąd HTTP 404.15-nie znaleziono modułu filtrowania żądań skonfigurowany tak, aby odrzucał żądanie, gdy ciąg zapytania jest zbyt długi.

Czy istnieje sposób, aby to nadpisać, abym mógł przetwarzać żądania dowolnej wielkości?

Jeśli nie, to czy jest sposób na generowanie plików po stronie klienta bez użycia obiektu filesystem / active X?

Thanks

Author: djv, 2012-07-24

9 answers

Dodaj następujące do swojej sieci.config:

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxQueryString="32768"/>
    </requestFiltering>
  </security>
</system.webServer>

Zobacz:

Http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimits

Zaktualizowano, aby odzwierciedlić komentarze.

RequestLimits Element dla requestFiltering [IIS Settings Schema]

Być może będziesz musiał dodać następujące elementy w swojej sieci.config as well

<system.web>
    <httpRuntime maxQueryStringLength="32768" maxUrlLength="65536"/>
</system.web>

Zobacz: Httpruntime Element (ASP.NET Settings Schema)

Oczywiście liczby (32768 i 65536) w ustawieniach konfiguracyjnych powyżej to tylko przykłady. Nie musisz używać tych dokładnych wartości.

 257
Author: Matt Varblow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-03 17:40:58

W moim przypadku (Visual Studio 2012 / IIS Express / ASP.NET MVC 4 app/. Net Framework 4.5) to, co naprawdę działało po 30 minutach prób i błędów, to ustawienie właściwości maxQueryStringLength w tagu <httpRuntime>:

<httpRuntime targetFramework="4.5" maxQueryStringLength="10240" enable="true" />

maxQueryStringLength domyślnie 2048.

Więcej o tym tutaj:

Rozszerzenie zakresu dopuszczalnych adresów URL


Próbowałem ustawić go w <system.webServer> jak sugeruje @MattVarblow, ale nie zadziałało... a to dlatego, że używam IIS Express (opartego na IIS 8) na moim komputerze dev z Windows 8.

Kiedy wdrożyłem aplikację do środowiska produkcyjnego (Windows Server 2008 R2 z IIS 7), IE 10 zaczął zwracać błędy 404 w żądaniach AJAX z długimi ciągami zapytań. Potem pomyślałem, że problem jest związany z ciągiem zapytań i wypróbowałem odpowiedź @ MattVarblow. Działa tylko na IIS 7. :)

 34
Author: Leniel Maccaferri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:41

Coś jeszcze do sprawdzenia: jeśli Twoja strona używa MVC, może się to zdarzyć, jeśli dodasz [Authorize] do swojej klasy kontrolera logowania. Nie ma dostępu do metody logowania, ponieważ nie jest autoryzowana, więc przekierowuje do metody logowania -- > boom.

 6
Author: SteveCav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-05 01:55:27

Jeśli napotkasz ten problem podczas uruchamiania serwera sieci Web IIS 8.5, możesz użyć następującej metody.

Najpierw znajdź moduł "Filtrowanie żądań" w witrynie IIS, nad którą pracujesz, a następnie kliknij go dwukrotnie...

Tutaj wpisz opis obrazka

Następnie kliknij prawym przyciskiem myszy w białym obszarze pokazanym poniżej, a następnie kliknij opcję menu kontekstowego o nazwie "Edytuj Ustawienia Funkcji".

Tutaj wpisz opis obrazka

Wtedy ostatnią rzeczą do zrobienia jest zmiana " maksimum query string (Bytes) " wartość z 2048 do czegoś bardziej odpowiedniego, takiego jak 5000 dla Twoich potrzeb.

Tutaj wpisz opis obrazka

 5
Author: Arvo Bowen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-08 17:18:57

Miałem podobny problem przy próbie wdrożenia aplikacji webowej ASP do IIS 8. Aby to naprawić zrobiłem tak, jak Matt i Leniel zasugerowali powyżej. Ale także musiał skonfigurować ustawienie uwierzytelniania mojej witryny, aby włączyć uwierzytelnianie anonimowe. I to mi pomogło.

 0
Author: Ronald Nsabiyera,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-31 10:42:08

Musiałem dodać [AllowAnonymous] do funkcji ActionResult na mojej stronie logowania, ponieważ użytkownik nie został jeszcze uwierzytelniony.

 0
Author: Andrew Gale,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-20 17:13:12

Jeśli Twoja witryna korzysta z uwierzytelniania, ale nie masz prawidłowej metody uwierzytelniania ustawionej w IIS (np. Basic, Forms itp..) wtedy przeglądarka utknie w pętli przekierowania. Powoduje to, że adres URL przekierowania staje się coraz dłuższy, dopóki nie eksploduje.

 0
Author: Steve Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-21 13:05:08

Będzie również generować błąd, gdy przekażesz duży ciąg w parametrze wywołania ajax.

Więc dla tego zawsze użyj type post w ajax rozwiąże twój problem 100% i nie ma potrzeby ustawiania długości w web.config.

// var UserId= array of 1000 userid

$.ajax({ "required": false,, url: SitePath + "/User / getAussizzMembersData", "data": { UserIds: UserId}, "type": "POST"", "dataType": "JSON" }}

 0
Author: rinku Choudhary,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-02 05:40:12

Błąd HTTP 404.15-nie znaleziono modułu filtrowania żądań skonfigurowany tak, aby odrzucał żądanie, gdy ciąg zapytania jest zbyt długi.

Aby rozwiązać ten problem, sprawdź w kodzie źródłowym, czy znacznik Form ma właściwość method to get/set state.

Jeśli tak, Właściwość method powinna zostać usunięta.

 -1
Author: user3635095,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-03 20:21:40