2016-04-14 23 views
0

C# ASP.NET tarafından işlenen bir OData v4 Action'a düzgün boyutlu JSON bir yığın yüklüyorum. Belirli bir noktada, girdiyi düzgün bir şekilde ayrıştırmak yerine, ODataActionParameters parametresi sıfırdır ve sunucu boş bir işaretçi istisnası atar.ODataActionParameters boyutundaki sınır nedir?

Yüklediğim veriler yüklüyor parçalara bölünebilir, ancak bunu yapmak için kasıtsızdır ve b) bunu yaptığımda biraz veri kaybına neden olabilir. (Olayları bir simülatöre yüklüyorum; girdi gruplandırılır, çünkü gruplandırmalar vardır, ancak parçalara ayırma garantisi yoktur - sadece bir gruplama olabilir.)

Hangi noktada ODataActionParameters Bayt yükü altında çökmek? Ben şu anda korkunç derecede bilimsel olmayan şeyler yapıyorum "duvara at ve şu anda ne yapması gerektiğini" test et, ama birisi bana sınırın ne olduğunu söylese, bu benim hayatımı çok daha kolaylaştıracaktır. (Ayrıca, bu sınırın sadece bir çift uç nokta için genişletilmesi için bir yol var mı? Yapılandırılabilir mi?)

+0

'ODataActionParameters' yalnızca 'Dictionary ' için bir addır. ayarlanabilir. Kural dışı durumun gerçekleştiğini göstermek için bir yığın izi sağlayabiliyor musunuz? – lencharest

cevap

0

Bu sınırlamanın, sistem.web httpRuntime yapılandırmasında ODataActionParameters'ın kendisinde değil olduğu ortaya çıkıyor. çözüm daha geniş maxRequestLength izin web.config değiştirmek oldu:

<configuration> 
    <system.web> 
    <httpRuntime targetFramework="4.6" maxRequestLength="204800" /> 
    ....and other settings... 
    </system.web> 
</configuration> 

varsayılan maxRequestLength 4MB olduğunu. Uygulamamın etrafında çeşitli OData bitleri 200 MB'lık bir maxReceivedMessageSize ayarladığı için burada 200MB'ye ayarlıyorum. (Özel bir istek için gerçek sınır, bu istek için OData yapılandırmanızın alt alt düzeyidir ve httpRuntime yapılandırmasıdır.)