2012-10-05 20 views
5

Vì vậy, tôi tiếp tục nhận được 500 - Trang lỗi máy chủ nội bộ trên trang web .net của tôi khi tôi đặt maxJsonLength trong web.config của mình.thiết lập jsonSerialization maxJsonLength trong ASP.net Web.Config cung cấp cho 500 lỗi

Tôi đang sửa đổi .config bởi vì mặc dù tôi sử dụng MaxJsonLength = Int32.MaxValue trên vb.net JavaScriptSerializer của tôi, tôi vẫn nhận được InvalidOperationException cho một từ điển lớn mà tôi đang cố gắng truyền tải ngay cả khi nó ở dưới 4GB MaxJsonLength @ Int32.MaxValue cho phép hoặc thậm chí giới hạn mặc định là 4mb.

Tôi đang sử dụng bộ công cụ ghi đè nếu điều đó có nghĩa là bất kỳ điều gì.

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

này không hữu ích (trên thực tế, nó cũng cung cấp cho 500 lỗi mà không cần mã trên)

<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> 

nghe này sẽ giúp với InvalidOperationException, nhưng nó thì không. Tôi lấy nó ra, và vẫn còn 500 lỗi.

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

Rất cám ơn trước!

Sửa

Cùng một vấn đề, nhưng giải pháp của ông không làm việc cho tôi. Mã cuối cùng mà anh ta thêm vào cũng cho 500 lỗi. Problem with <system.web.extensions> config group when upgrading to .NET 4.0

+0

nếu bạn kiểm tra xem nó có phải là firebug của chrome, bạn có nhận được thông báo lỗi trong phản hồi với 500 không? điều gì làm cho bạn nghĩ rằng lỗi là do kích thước của phản hồi, có nhiều lý do khác cho lỗi 500 –

+0

Cảm ơn bạn đã trả lời. Nó không đưa ra chi tiết trong tiêu đề phản hồi và phản hồi chỉ là trang lỗi 500 .net điển hình.Lỗi xuất hiện khi tôi đặt dòng jsonSerialization maxJsonLength vào. Nếu tôi lấy nó ra, mọi thứ đều ổn, ngoại trừ tôi không thể nhận được JSON cực lớn mà tôi cần. –

+0

lạ, tôi sử dụng trong mã của tôi tất cả các thời gian trong web.config giống như bạn đã làm với không có vấn đề, là nó trong ? –

Trả lời

5

Vấn đề đối với tôi là tôi đặt mã vào đầu web.config. Vì một lý do nào đó, đặt nó vào cuối hoạt động.

Không phải là chuyên gia, vì vậy tôi không biết tại sao lại hiệu quả.

Nó hoạt động mà không có hai phần mã cuối cùng mà tôi đã cố gắng làm cho nó hoạt động.

2

Tôi đồng ý với Gracchus, tôi đặt này dưới khối cuối cùng của file web.config

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

Đảm bảo đồng bộ hóa cuộc gọi .ajax(): đúng (các lần thử lặp lại để gọi có thể kết thúc yêu cầu của bạn) –

+0

Bạn có nghĩa là ở cuối 'configuration'node? –

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

thiết lập trên làm việc cho tôi. Ngoài ra tôi đã phải đặt khung mục tiêu của trang web thành .Net 4.0. thiết lập cấu hình web này đã đem lại cho tôi 500 lỗi khi khuôn khổ mục tiêu đã được thiết lập để NET 2.0

Để thay đổi khuôn khổ, goto IIS và chọn Application Pool Nhấp chuột phải vào tên trang web của bạn và chọn Advanced settings . Ở đây bạn có thể thay đổi phiên bản .Net Framework bằng cách nhấp vào trình đơn thả xuống.

Ngoài ra tôi đã có cài đặt này ở cuối cấu hình web. Chỉ để có may mắn :)

Hy vọng điều này sẽ hữu ích.

Các vấn đề liên quan