PDA

View Full Version : سوال: null شدن Cache بعد از بستن برنامه Visual Studio!!!!!!!!!!!!!!!!!!!!!!!!!



bftarane
دوشنبه 11 اردیبهشت 1391, 19:10 عصر
سلام. من يه کد ساده با کمک کتاب آقاي قمي نوشتم که به مدت 10 دقيقه يه شي از نوع DateTime در Cache حفظ بشه.
مشکل اينجاست که وقتي Visual Studio رو مي بندم و دوباره باز مي کنم و برنامه رو اجرا مي کنم انتظار دارم قسمت
if(Cache["TestItem"]==null) جوابش false باشه و کدي که در قسمت else هست اجرا بشه ولي اين اتفاق نمي افته.
البته وقتي برنامه اجرا شد و فقط صفحه رو ببندم اون طور که انتظار دارم جواب مي گيرم. ولي نمي دونم چرا وقتي برنامه رو کاملاً مي بندم و دوباره باز مي کنم Cache خاليه!!!!!!!!

با اين که مطمئنم اشکال از کد نيست کد رو هم ميزارم.

protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)

Label1.Text += "Page posted back.<br>";
else

Label1.Text += "Page created.<br>";
if (Cache["TestItem"]==null)
{
Label1.Text += "Creating TestItem...<br>";
DateTime TestItem = DateTime.Now;
Label1.Text += "StoringTestItem in cache for 30 second.<br>";
Cache.Insert("TestItem", TestItem, null, DateTime.MaxValue, TimeSpan.FromMinutes(10));
}
else
{
Label1.Text += "Retrieving TestItem...<br>";
DateTime TestItem = System.Convert.ToDateTime(Cache["TestItem"]);
Label1.Text += "TestItem is '" + System.Convert.ToString(TestItem) + "'<br>";
}
Label1.Text += "<br>";

}

البته من اين کد رو فقط براي تست نوشتم. من دارم روي يه فروشگاه کار مي کنم که دارم براي سبد خريدش از مکانيسم کش استفاده مي کنم و متوجه اين مشکل شدم در اونجا. اول فکر مي کردم شايد ايراد از کدام باشه ولي وقتي برنامه ساده بالا هم جواب نداد به اين نتيجه رسيدم ايراد از کدها نيست.

لطفاً کمکم کنيد. مشکل از کجا مي تونه باشه؟ خيلي برام مهمه.:اشتباه:

aminghaderi
دوشنبه 11 اردیبهشت 1391, 20:58 عصر
vs یه سرور مجازی ایجاد می کنه که با بستن اون ، سرورش هم از بین می رود ، پس طبیعی هست .
اما در سرور اصلی به این شکل نیست چون سرور به ندرت خاموش یا ریستارت می شود .
اما روشی که انتخاب کردید فکر می کنم امن و کارا نیست ، خصوصا برای فروشگاه.

bftarane
دوشنبه 11 اردیبهشت 1391, 21:25 عصر
ممنون از پاسختون.


اما روشی که انتخاب کردید فکر می کنم امن و کارا نیست ، خصوصا برای فروشگاه. اما من در اين زمينه زياد مطالعه کردم اينکه از سشن يا کوکي يا پروفايل يا کش استفاده کنم و با توجه به صحبتهاي آقاي راد در دو لينک زير
به اين نتيجه رسيدم که کش بهترين راهه.
http://barnamenevis.org/showthread.php?130127
پست 8
http://barnamenevis.org/showthread.php?115064
پست 8

اگه هنوزم به نظرتون امن و کارا نيست ميشه بيشتر توضيح بديد.

d_derakhshani
سه شنبه 12 اردیبهشت 1391, 10:28 صبح
ممنون از پاسختون.

اما من در اين زمينه زياد مطالعه کردم اينکه از سشن يا کوکي يا پروفايل يا کش استفاده کنم و با توجه به صحبتهاي آقاي راد در دو لينک زير
به اين نتيجه رسيدم که کش بهترين راهه.
http://barnamenevis.org/showthread.php?130127
پست 8
http://barnamenevis.org/showthread.php?115064
پست 8

اگه هنوزم به نظرتون امن و کارا نيست ميشه بيشتر توضيح بديد.
دوست عزیز استفاده از کش و سشن برای سبد خرید تا قبل رفتن به بانک شاید بد نباشه(که هست باز هم تا حدی، اما دردسر ساز زیاد نیست و خوبیش اینه که خیلی راحته) اما بعد اون باید حتما در بانک ذخیره شه.
چراش ساده است چون خیلی راحت امکان داره IIS یا recylce بشه و یا ریستارت(که این خیلی کمتر رخ میده) در نتیجه خیلی ساده اطلاعات میپره. دیگه جای بحثی باقی نمی مونه.
در مورد کوکی هم که بسیار واضحه که ذخیره اطلاعات در اون مشکل امنیتی داره.

bftarane
سه شنبه 12 اردیبهشت 1391, 13:14 عصر
آقاي d_drakhshani ممنون که جواب داديد

بله. نهايتاً اطلاعات کارت خريد در بانک ذخيره ميشه.
که آقاي راد هم در پست 21 لينک زير
http://barnamenevis.org/showthread.php?115064 بهش اشاره کردن. ولي با توجه به صحبت شما باز هم مشکل ريستارت وجود داره.


شاید بد نباشه(که هست باز هم تا حدی، اگه وقت کردين ممکنه در مورد اين قسمت (که هست باز هم تا حدي توضيح بدين)؟

با اين تفاسير اگه سشن و کوکي و کش رو بخواهيم حذف کنيم فکر کنم فقط مي مونه بانک درسته؟ يعني ابتدا اطلاعات سبد خريد به صورت موقتي در بانک ذخيره بشن و در
صورت قطعي شدن خريد به صورت دائمي ذخيره بشن؟ درست فهميدم؟ اگه آره لطفاً يه لينک درست و درمون در اين مورد اگه سراغ داريد معرفي کنيد.

aminghaderi
سه شنبه 12 اردیبهشت 1391, 17:32 عصر
سشن و کوکي و کش رو بخواهيم حذف کنيم با عرض سلام به شما و بقیه دوستان.
جناب راد استاد بنده هستند و من نمی تونم روی پست ایشون نظر بدم حتی بعداز گذشت 3 سال؟!
ولی اگر قرار باشه من یه سبد خرید درست کنم 100% مکانیزم اون خاص هست و البته بسیار پیچیده و زمانبر (روحیه من اینجوری هست) ، ولی اگر قرار باشه یه راه ساده و کاربردی با کارایی بالا معرفی کنم ، استفاده از سشن و کوکی و دیتابیس با رعایت نکات امنیتی رو پیشنهاد می کنم.
سشن و کوکی اگر تدابیر امنیتی درش رعایت بشه احتمال خطر به 0 میل می کنه.(امنیت رو نمی شه کامل به دست آورد. )
منتهای مراتب باید به مباحث مسلط باشید.
جناب درخشانی فکر کنم چند روز پیش در یه تاپیکی به دوستی کمک کرده بودند که حالا خودشون هستند و لینک رو می گذارند ، من بوک مارک نکردم.
مباحثی مثل SESSION FIXED و...
اصل کار اون درگاه بانکی هست که باید از همه جای کار امن تر باشه که خود بانک امنیت اون رو حفظ و تضمین می کنه . ، البته اگر رمز کارت ها از جای دیگه لو نرود ؟! :لبخند: