در این مقاله به بررسی انواع Session State و نحوه انجام تنظیمات این ماژول در IIS 7.5، به دو روش زیر می پردازیم:
ماژول ها و رسیدگی کننده های لازم می بایستی در هر کدام از سطوح فوق بر روی وب سرور نصب و فعال شوند.
نکته: ماژول ها تنها می توانند در سطوح Web Server، Site و Application فعال شوند، ولی رسیدگی کننده ها می توانند در هر یک از سطوح مذکور فعال شوند.
اگر شما از IIS Manager برای پیکربندی Session استفاده می کنید، بایستی دسترسی Administrator داشته باشید یا یک کاربر IIS Manager با حق دسترسی به یک سایت یا یک برنامه کاربردی در IIS Manager باشید.
نکته: اگر شما تنها یک کاربر عادی در IIS Manager باشید، ممکن است در صورت قفل شدن عناصر پیکربندی مرتبط با ماژول Session State قادر به انجام پیکربندی آن نباشید. اگر شما پیکربندی Session State را از طریق Appcmd.exe ، اجرای اسکریپتهای WMI و یا ویرایش فایل های پیکربندی انجام می دهید، بایستی حق اعمال Write در فایل یا فایلهای پیکربندی مورد نظر را داشته باشید.
وضعیت In-Process در ماژول Session State، داده های Session State را برای برنامه ی کاربردی ASP.NET در پروسس عملگر (که برنامه کاربردی اجرا می کند) ذخیره می نماید. بصورت پیش فرض وضعیت Session State در IIS 7.5، در وضعیت In-Process است. وضعیت In-Process برای دسترسی سریع به داده های Session-State می باشد. به هر روی، هرچه شما داده های بیشتری را در Session ذخیره کنید، طبیعتا حافظه بیشتری از وب سرور را استفاده خواهید نمود که منجر به کند شدن عملکرد سرور می شود
. قبل از اینکه شما وضعیت In-Process را در ماژول Session State پیکربندی کنید، بایستی تاثیر بازیافت پروسس عملگر بر داده های تنظیمات ماژول Session State را در نظر بگیرید. اگر پروسس عملگر بازیافت شود، تمامی داده های Session State از بین خواهد رفت. اگر برنامه های کاربردی ASP.NET شما نیاز به حفظ داده های Session State داشته باشد و اگر سرعت دسترسی به داده ها برای شما از اهمیت زیادی برخوردار نیست، می توانید از وضعیت Out-of-Process در ماژول Session State جهت ذخیره سازی داده ها استفاده کنید.
نکته: سرویس وضعیت ویندوز (Windows State Service) یا همان Aspnet_state.exe برای وضعیت In-Process در ماژول Session State بایستی در حال اجرا باشد. بطور پیش فرض، سرویس مذکور با نصب Windows Server 2008 برای شروع دستی (Manual Start) نصب و پیکربندی می شود. توصیه می شود در Windows State Session وضعیت شروع(Start) را از حالت دستی(Manual) به حالت خودکار (Automatic) تغییر دهید.
شما می توانید از طریق رابط کاربری (UI)، اجرای دستورات Appcmd.exe در محیط Command-Line ویندوز ، ویرایش مستقیم فایل های پیکربندی یا با نوشتن اسکریپتهای WMI، وضعیت In-Process را در ماژول Session State فعال کنید که در زیر به بیان دو مورد اول آنها می پردازیم. برای اطلاع از چگونگی ویرایش فایل web.config و یا نوشتن اسکریپتهای WMI جهت انجام تنظیمات session state در کل این مقاله به سایت مایکروسافت رجوع نمایید.
جهت فعالسازی وضعیت In-Process در ماژول Session State، متن زیر را در محیط Command-Line ویندوز وارد کرده و Enter را فشار دهید:
[pre]
appcmd set config/commit-WEBROOT /section:SessionState /mode:InProc
[/pre]
متغیر mode:InProc در حقیقت وضعیت in-Process را در ماژول Session State فعال می کند. البته وضعیت in-process در ماژول Session State بطور پیش فرض فعال است.
هنگامیکه session state برای برنامه کاربردی شما فعال باشد، کاربر به ازای اولین درخواستی که برای صفحه وب ارسال می نماید یک session ID منحصر بفرد توسط برنامه کاربردی ASP شما دریافت می کند. بطور پیش فرض ، session هنگامی منقضی می شود که کاربر درخواست یا refresh برای یک صفحه در برنامه کاربردی ASP طی ۲۰ دقیقه ارسال نکند. از آنجا که به Session Objects در وب سرور حافظه اختصاص داده می شود، شما ممکن است جهت کاهش مقدار time-out برای صرفه جویی در منابع، مقدار time-out را کاهش دهید.
نکته: هنگامیکه مقدار session time-out را تنظیم می کنید دقت کنید، زیرا که اطلاعات ذخیره شده در یک session object کاربر بواسطه ی وقوع time-out از بین خواهد رفت.
استفاده از دستور Appcmd.exe در محیط Command-Line جهت پیکر بندی session time-out:
برای مشخص کردن بازه زمانی پیش فرضی که یک Session Object بعد از آخرین درخواست همچنان حفظ می شود، از دستور زیر در محیط Command-Line استفاده کنید.
[pre]
Appcmd set config /section:asp /timeout: timeSpan
[/pre]
متغیر timeSpan در دستور فوق، معرف حداکثر بازه زمانی است که یک session object بعد از آخرین درخواست همچنان حفظ می شود. مقدار پیش فرض متغیر فوق ۰۰:۲۰:۰۰ می باشد.
IIS بطور پیش فرض session state را برای ASP فعال می نماید. با فعّال سازی session state، وب سرور یک session object یا یک session ID منحصر بفرد ایجاد کرده و آنرا به هر کاربری که درخواست web page را از یک برنامه کاربردی ASP ارسال می نماید، اختصاص می دهد. وب سرور سپس از آن session ID برای حفظ اطلاعات مربوط به کاربر تا زمانیکه session منقضی شود یا توسط یک اسکریپت ASP رها شود استفاده می کند.
Session ها می توانند منابع ارزشمند یک وب سرور را استفاده می کنند. شما با غیر فعالسازی session state قادر خواهید بود عملکرد برنامه کاربردی ASP خود را بهبود بخشید. هنگامیکه شما session state را غیر فعال می نمایید، ASP کاربران را ردیابی نخواهد کرد و همجنین به اسکریپت ASP اجازه ذخیره سازی اطلاعات در session objectیا استفاده از رویدادهای Session_OnStart یا Session_OnEnd برای بیش از یک درخواست یا رویداد (Event) را نخواهد داد.
برای غیر فعالسازی تنظیمات ماژول Session State شما می توانید از روش های زیر استفاده کنید:
در ادامه به بررسی دو روش اول خواهیم پرداخت.
برای غیر فعالسازی session state برای برنامه کاربردی ASP، از دستور زیر در محیط Command-Line استفاده کنید.
[pre]
Appcmd set config /section:asp /allowSessionState:False
[/pre]
متغیر allowSessionState: False در دستور فوق، session state را غیر فعال می نماید. ارزش پیش فرض متغیر مذکور True می باشد.
مشخص کردن یک تامین کننده ی session state سفارشی (Custom Session state Provider):
شما می توانید از یک تامین کننده جهت رسیدگی به session state مربوط به برنامه کاربردی ASP.NET بر روی وب سرورتان استفاده کنید. تامین کننده ، در واقع ارتباط لازم به پایگاه داده ای که اطلاعات session state در آن ذخیره می شود را ایجاد می کند.در زیر به بیان دو علت اساسی استفاده از تامین کننده session state سفارشی می پردازیم:
مشخص کردن یک تامین کننده ی session state سفارشی:
برای مشخص کردن یک تامین کننده ی session state سفارشی ، می توانید از روش های زیر استفاده نمایید:
در ادامه به توضیح روش اول می پردازیم.
استفاده از رابط کاربری برای مشخص کردن یک تامین کننده ی session state سفارشی:
یکی از راه های ردیابی session state برای کلاینت ها یی که با وب سرور ارتباط دارند، استفاده از Cookie ها است. شما می توانید وب سرور را جهت استفاده از Cookie ها، عدم استفاده از Cookie ها یا انتخاب رفتار Cookie که به مرورگر مورد استفاده برای برقراری ارتباط با وب سرور بستگی دارد، پیکر بندی کنید.
در ادامه به بررسی موارد زیر می پردازیم:
یک session cookie اطلاعات session را با اطلاعات کلاینت برای یک session ( که همان مدت ارتباط کاربر با یک سایت است) مربوط می سازد. در واقع Cookie به انضمام تمام درخواست های بین یک کلاینت و یک وب سرور (در یک هدر HTTP) تبادل می شود. استفاده از Cookie ها نسبت به سایر روشهایی که از Cookie ها استفاده نمی کنند، سودمندتر است زیرا که Cookie ها به Redirection نیاز ندارند. بعلاوه ، آنها کاربر را مجاز به استفاده از Bookmark برای صفحات وب می نمایند. به هر روی، Cookie ها نقص هایی هم دارند که در ادامه بیان می شود:
شبکه های ارتباطی در طی چند دهه اخیر دچار تحولات بنیادینی شده اند. در آغاز،…
مایکروسافت با انتشار نسخه ی ویندوز سرور 2025، یک بار دیگر ثابت کرده که در…
حملات DDoS (Distributed Denial of Service) یکی از پیچیدهترین و مخربترین تهدیدات سایبری برای وبسایتها…
PyTorch یک چارچوب ماشین لرنیگ اوپن سورس پرکاربرد است که به دلیل سهولت استفاده، نمودار…
اگر شما یک شخص، یک کسب و کار کوچک یا یک شرکت تجاری باشید که…
Ansible برای مدیران سیستم و متخصصان DevOps که می خواهند روند کار IT خود را…