2012-10-05 9 views
5

Tak, wciąż otrzymuję stronę błędu 500 - Wewnętrzny serwer na mojej stronie .net, kiedy ustawię maxJsonLength w moim web.config.Ustawienie jsonSerialization maxJsonLength w ASP.net Web.Config daje 500 błąd

Modyfikuję plik .config, ponieważ mimo że używam MaxJsonLength = Int32.MaxValue na moim JavaScriptSerializer vb.net, wciąż otrzymuję InvalidOperationException dla dużego słownika, który próbuję przesłać, mimo że jest znacznie poniżej 4 GB MaxJsonLength @ Int32.MaxValue pozwala lub nawet przypuszczalny limit domyślny 4mb.

Używam toolkitscriptmanager, jeśli to coś znaczy.

<system.web.extensions> 
<scripting> 
    <webServices> 
    <jsonSerialization maxJsonLength="2147483647"/> 
    </webServices> 
</scripting> 

to nie pomogło (faktycznie, ale również daje błąd 500 bez powyższego kodu)

<sectionGroup name="system.web.extensions" type="System.Web.Extensions"> 
    <sectionGroup name="scripting" type="System.Web.Extensions"> 
    <sectionGroup name="webServices" type="System.Web.Extensions"> 
     <section name="jsonSerialization" type="System.Web.Extensions"/> 
    </sectionGroup> 
    </sectionGroup> 
</sectionGroup> 

usłyszał to powinno pomóc InvalidOperationException, ale tak się nie stało. Wyciągnąłem go i nadal mam 500 błędów.

<add key="aspnet:MaxJsonDeserializerMembers" value="2147483647" /> 

Wielkie dzięki z góry!

Edit

sam problem, ale jego rozwiązanie nie działa dla mnie. Ostatni dodany kod również daje błąd 500. Problem with <system.web.extensions> config group when upgrading to .NET 4.0

+0

jeśli sprawdzasz firebuga chrome, czy otrzymasz komunikat o błędzie w odpowiedzi na 500? co sprawia, że ​​uważasz, że błąd spowodowany jest rozmiarem odpowiedzi, jest wiele innych powodów, dla których błąd 500: –

+0

Dziękuję za odpowiedź. Nie podaje żadnych szczegółów w nagłówku odpowiedzi, a odpowiedź jest tylko typową stroną błędu .net 500.Błąd pojawia się, gdy wstawiam linię jsonSerialization maxJsonLength. Jeśli ją wyjęłam, wszystko jest w porządku, ale nie mogę uzyskać super ogromnego JSON-a, którego potrzebuję. –

+0

Dziwne, używam w moim kodzie przez cały czas w web.config, tak jak zrobiłeś to bez problemu, czy jest to ? –

Odpowiedz

5

Problem polegał na tym, że umieściłem kod na początku pliku web.config. Z jakiegoś powodu umieszczenie go na końcu działało.

Nie jestem ekspertem, więc nie mam pojęcia, dlaczego to zadziałało.

Zadziałało bez dwóch ostatnich sekcji kodu, które próbowałem uruchomić.

2

Zgodziłem się z Grakchusa, kładę to poniżej bloku w końcu pliku web.config

<system.web.extensions> 
    <scripting> 
     <webServices> 
      <jsonSerialization maxJsonLength="2147483647"/> 
     </webServices> 
    </scripting> 
</system.web.extensions>` 
+0

Upewnij się, że .ajax() call sync: true (zduplikowane próby połączenia mogą zakończyć się twoją prośbą) –

+0

Masz na myśli na końcu 'konfiguracji'? –

1
<system.web.extensions> 
    <scripting> 
     <webServices> 
     <!--<jsonSerialization maxJsonLength="50000000"> 
     </jsonSerialization>--> 
     <jsonSerialization maxJsonLength="500000000"> 
      <!--50000000--> 
     </jsonSerialization> 
     </webServices> 
    </scripting> 
    </system.web.extensions> 

ustawienia Wyżej pracował dla mnie. Dodatkowo musiałem ustawić docelową strukturę strony na .Net 4.0. To ustawienie web config dawał mi 500 błędu gdy ramy docelowa została ustalona na .NET 2.0

Aby zmienić ramy, Goto IIS i wybierz Application Pool Kliknij prawym przyciskiem myszy na nazwę strony i wybierz Zaawansowane ustawienia . Tutaj możesz zmienić wersję .Net Framework, klikając menu.

Również miałem to ustawienie na dole konfiguracji sieci. Tylko na szczęście :)

Mam nadzieję, że to pomoże.