SORU
10 HAZİRAN 2012, Pazar


Alma "JSON isteği serisi için çok büyük"

Bu Hatayı alıyorum:

JSON isteği serisi için çok büyüktü.

İşte böyle bir senaryo. Bu ülkenin limanlar listesini tutun ülkenin bir Dersim var

public class Country
{
    public int Id { get; set; }
    public string Name { get; set; }
    public List<Port> Ports { get; set; }
}

Basamaklı bir damla çıkışlar yapmak için istemci tarafında KnockoutJS kullanıyorum. İlk ülkedir, ikincisi de o ülkenin noktaları nerede iki damla çıkışlar, bir dizi var.

Her şey gayet iyi durumda, bu istemci tarafı senaryom:

var k1 = k1 || {};
$(document).ready(function () {

    k1.MarketInfoItem = function (removeable) {
        var self = this;
        self.CountryOfLoadingId = ko.observable();
        self.PortOfLoadingId = ko.observable();
        self.CountryOfDestinationId = ko.observable();
        self.PortOfDestinationId = ko.observable();  
    };

    k1.viewModel = function () {
        var marketInfoItems = ko.observableArray([]),
            countries = ko.observableArray([]),

            saveMarketInfo = function () {
                var jsonData = ko.toJSON(marketInfoItems);
                $.ajax({
                    url: 'SaveMarketInfos',
                    type: "POST",
                    data: jsonData,
                    datatype: "json",
                    contentType: "application/json charset=utf-8",
                    success: function (data) {
                        if (data) {
                            window.location.href = "Fin";
                        } else {
                            alert("Can not save your market information now!");
                        }

                    },
                    error: function (data) { alert("Can not save your contacts now!"); }
                });
            },

            loadData = function () {
                $.getJSON('../api/ListService/GetCountriesWithPorts', function (data) {
                    countries(data);
                });
            };
        return {
            MarketInfoItems: marketInfoItems,
            Countries: countries,
            LoadData: loadData,
            SaveMarketInfo: saveMarketInfo,
        };
    } (); 

Sorun Çin gibi bir ülke seçildiğinde, hangi oluşurçokbağlantı noktaları. Eğer öyleyse "Çin" dizisinde ve sunucuya kaydetmek için göndermek istiyorum. 3 veya 4 kere varsa Bu hata oluşur.

Ben bu durumu düzeltmek için ne yapmalıyım?

CEVAP
10 HAZİRAN 2012, Pazar


web.config daha yüksek bir değer için maxJsonLength özelliği ayarlamak için bu sorunu çözmek için var.

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

AppSettings aspnet:MaxJsonDeserializerMembers için daha yüksek bir değer ayarlayın:

<appSettings>
  <add key="aspnet:MaxJsonDeserializerMembers" value="150000" />
</appSettings>

Eğer bu seçenekleri çalışıyorsanız thread Bu belirtilen özel json değer sağlayıcı bir fabrika json.net oluşturma deneyebilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jeb Corliss

    Jeb Corliss

    17 Kasım 2006
  • TotalSeminarsChannel

    TotalSeminar

    16 Mart 2010
  • Truc Minh

    Truc Minh

    23 Ocak 2011