PDA

View Full Version : حداکثر حجم Page.Cache و ViewState؟



raravaice
یک شنبه 01 اردیبهشت 1387, 15:26 عصر
سلام

در گیر حل یه صورت مسئله برای یه سایت شدم که تصویری آپلود و بدون ذخیره شدن به صورت فایل قرار روی Stream تصویر تغییراتی انجام بشه که یکی از اونا میتونه تغییر سایز باشه.
برای نگهداری Stream این تصویر من به چند روش عمل کردم که یه قسمتش هنوز برام مبهم هست.

DataBase : بری این مورد نا معقول.

Session : به دلیل فشاری که در حجم بالا به رم سرور میاد و همچنین سرور به صورت Share هست احتمال از بین رفتن داده ها وجود داره و برنامه دچار مشکل میشه.

Application : غیر قابل استفاده برای این مورد.

Cookies : حداکثر حجم قابل قبول یک کوکی 4KB هست که به کار نمیاد.

Hidden Field : گزینه مناسبی هست ولی حجم صفحه رو زیاد میکنه.

حالا سئوال برای دو مورد باقیمانده :

Page.Cache :
آیا دارای محدودیت حجمی هست؟ چقدر؟
آیا مقدار ذخیره شده در Cache توی سرور هم ذخیره میشه که از رم استفاده کنه و یا فقط از طریق Header های صفحه انتقال داده میشه.

ViewState :
آیا دارای محدودیت حجمی هست؟ چقدر؟

پ.و : حداکثر حجم تصویر من 50KB هست که بعد از Base64 گاها به 80KB میرسه.

تشکر

twelve
یک شنبه 01 اردیبهشت 1387, 15:56 عصر
ViewState :
آیا دارای محدودیت حجمی هست؟ چقدر؟

نه. به صورت پیش فرض خود viewstate محدودیت حجمی و حتی تکرار فراخوانی ندارد اما قابل محدود شدن می باشد. گاهی محدودیت های viewstate به محدودیت اعمال شده برای ماکزیمم سایز فیلدهای پنهان توسط مرور گر هاست .
برای اطلاعات جامع پیشنهاد میکنم مقالات زیر رو مطالعه کنید.


Limitations come into play when the browser limits the size of hidden fields. A capability to look for in Whidbey is chunking view-state. This is intended for situations where the view-state field becomes very large and certain firewalls or proxies may prevent a page if a hidden field is considered to be too big. In this case, a deveLimitations come into play when the browser limits the size of hidden fields. A capability to look for in Whidbey is chunking view-state. This is intended for situations where the view-state field becomes very large and certain firewalls or proxies may prevent a page if a hidden field is considered to be too big. In this case, a developer will be able to configure the view-state so it can be broken into multiple hidden fieldsloper will be able to configure the view-state so it can be broken into multiple hidden fields


http://codebetter.com/blogs/raymond.lewallen/archive/2005/02/22/51315.aspx


The maximum number of ViewState data that could be held on the DataTable is defined by the Web.Config parameter ViewStateTableSize. The default value, 150, represents that the ViewState data of the last 150 postbacks will be available to the system. So, if the user clicks on the navigator's Back button 150 times (what is improbable to occur), the ViewState for that page will already be present to be used. This is a very good number...



http://www.codeproject.com/KB/viewstate/ServerViewState.aspx
http://aspalliance.com/72
http://articles.techrepublic.com.com/5100-22-5229520.html
http://www.velocityreviews.com/forums/t82088-any-limitation-on-view-state-size.html

raravaice
یک شنبه 01 اردیبهشت 1387, 16:03 عصر
اطلاعات خوبی بود ولی خیلی دور تر از جواب صریح ممنون.

و Page.Cache؟

موفق باشید

twelve
یک شنبه 01 اردیبهشت 1387, 17:47 عصر
اطلاعات خوبی بود ولی خیلی دور تر از جواب صریح ممنون
صریح بود دیگه اذیت نکن :-D


Page.Cache؟

محدودیت دارد که میزان آن بستگی به فضای فیزیکی RAM دارد. البته در فایل وب کانفیگ با المنت <cache privateBytesLimit = "n byte" /> محدودیت رو به صورت Custom تغییر داد.
در برنامه هم میتونی میزان حدودی رو که cache استفاده میکنه رو باCache.EffectivePrivateBytesL به دست بیاری.

بازم پیشنهاد میکنم لینکهای زیر رو ببینید.
http://www.asp.net/Learn/moving-to-asp.net-2.0/module-07.aspx
http://forums.asp.net/p/962451/1199949.aspx