میزبانی وب

اعمال تنظیمات دلخواه در ASP از طریق ماژول ASP در IIS 7.5

آشنایی با ماژول ASP

فهرست این مقاله ( با کلیک روی هر عنوان به آن قسمت منتقل می شوید) پنهان

اگر قصد اعمال تنظیمات دلخواه در ASP (البته فرم کلاسیک و نه integrated) را دارید، ماژول ASP در دسترس شماست.  باید توجه داشت این ماژول IIS در حالت دسترسی از دور ( remote )  به صورت قفل شده ارایه شده و  صرفا به صورت مستقیم می توان آن را مدیریت کرد.

ماژول ASP زمانی کاربرد دارد که نرم افزار  (  یا application  ) در ASP نوشته شده باشد و قصد داشته باشید تنظیمات و پیکربندی مد نظرتان را برای نرم افزار طراحی شده اعمال کنید. تنظیماتی از قبیل نحوه کنترل رفع اشکال ( debugging ) ، تنظیمات بازگشت خطا، تنظیمات character set مورد استفاده در برنامه، زبان برنامه نویسی مورد استفاده در برنامه و اینکه آیا در صورت بروز خطا، رویداد ثبت شود یا خیر.

علاوه بر موارد فوق، ماژول ASP  امکان پیکربندی این مواردیاز قبیل : +COM و ASP Caching و محدودیت های میانگیری (buffering) و Session State را نیز فراهم می کند.

نحوه دسترسی:

این ماژول را می توان در صفحه Application Home و زیر عنوان IIS یافت.

آشنایی با تنظیمات موجود در ماژول:

پس از انتخاب ASP، سه دسته تنظیم را می توان دید که عبارتند از: گروه اول مشی (behavior)، گروه دوم تفسیر (compilation) و گروه سوم سرویسها(services)

در گروه اول (behavior) می توان تنظیمات مانند  codepage ،  parentpath  ،  نحوه آغاز مجدد پس از تغییر پیکربندی ، chunked encoding و … را تغییر داد.

در گروه دوم (compilation)،  به تنظیمات مربوط به رفع عیب (debugging)  و زبان پیش فرض برنامه نویسی دسترسی خواهید داشت.

در گروه سوم، (services)،  تنظیمات +com و cache و البته مهمتر از این دو، تنظیمات نشست یا Session (تعداد، زمان و …) در اختیار کاربر قرار دارد.

پیکربندی:

پیکربندی تمامی عناصر   <ASP> -فرا تر از آنچه در GUI بالا توضیح داده شد-در سطح دسترسی سرور ( و نه site یا application ) به کمک ویرایش فایل ApplicationHost.config  امکان پذیر است.

در جدول زیر با این موارد آشنا خواهیم شد:

ردیف

نام

کاربرد

حالت پیشفرض

۱

appAllowClientDebug

مجوز رفع اشکال سمت کاربر

غیرفعال

۲

appAllowDebugging

مجوز رفع اشکال سمت سرور

غیرفعال

۳

bufferingOn

مجوز میانگیری خروجی نرم افزار

فعال

۴

calcLineNumber

تعیین شماره خطی که خطا در آن رخ داده

فعال

۵

Codepage

مجموعه کاراکتر های پیشفرض مختص یک نرم افزار

۰

۶

enableApplicationRestart

نحوه شروع مجدد پس از تغییر پیکربندی

فعال

۷

enableAspHtmlFallback

مجوز دسترسی به فایل همنام html با ASP برای مرورگر

فعال

۸

enableChunkedEncoding

انتقال گروهی (ChunkedEncoding) نسخه ۱.۱

فعال

۹

enableParentPaths

مجوز دسترسی به مسیر جاری یا بالاتر

غیرفعال

۱۰

errorsToNTLog

مجوز ثبت خطاهای ASP در ویندوز

غیرفعال

۱۱

exceptionCatchEnable

مجوز استثنا در رفع عیب

فعال

۱۲

Lcid

تعیین محل پیسفرض برای شناسه ASP

۰

۱۳

logErrorRequests

مجوز ثبت خطاهای IIS در مرورگر کاربر و همینطور در log های IIS

فعال

۱۴

runOnEndAnonymously

تنظیمات SessionOnEnd و ApplicationOnEnd

فعال

۱۵

scriptErrorMessage

پیغام خطای ارسالی به کاربر وقتی پیغام های رفع عیب ارسال نمی شوند

***

۱۶

scriptErrorSentToBrowser

مجوز اشکال زدایی خاص مرورگر کاربر

غیرفعال

۱۷

scriptLanguage

زبان پیش فرض برای همه نرم افزارهای اجرا شده روی سرور وب

VBScript

 

برای نمونه کد زیر، میانگیری (buffering) و  session state را برای سایتی به نام yoursite فعال کرده و  parent path را نیز از کار می اندازد.

[pre]

<location path=”yoursite”>

   <system.webServer>

      <asp enableParentPaths=”false” bufferingOn=”true”>

         <session allowSessionState=”true” />

      </asp>

   </system.webServer>

</location>

[/pre]

ای کمک به تعدیل منابعی که IIS 7 استفاده خواهد کرد، شما می توانید تنظیمات را برای وضعیت جلسه معین کنید. برای مثال، ویژگی max در واقع حداکثر تعداد جلسات را جهت ذخیره سازی بیان می دارد و ویژگی timeout مدت زمان هر جلسه ی ASP را مشخص می کند. اگر برنامه ها نیازی به وضعیت جلسه نداشته باشند، با قرار دادن ویژگی allowSessionState به وضعیت false وضعیت جلسه ASP نمایش داده نخواهد شد.

قابلیت ها:

 نسخه ی IIS 7.5: عنصر <session>  در IIS 7.5 اصلاح نشده است.

نسخه ی IIS 7.0: عنصر <session> در <asp> در این نسخه از IIS معرفی شده است.

نسخه ی IIS 6.0: به جای عنصر  <session>، ویژگی های IIS 6.0 metabase که در زیر اشاره شده جایگزین <session> شده اند:

  • AspAllowSessionState
  • AspKeepSessionIDSecure
  • AspSessionMax
  • AspSessionTimeout

راه اندازی:

برای پشتیبانی و پیکربندی (Configuration) برنامه های ASP بر روی وب سرورتان، بایستی ماژول ASP را نصب کنید.

[irp posts=”۶۹۰۶″ name=”هندلر چیست + تنظیم پسوند های فایل به هندلر مربوطه از طریق (Handler Mapping) در IIS 7.5″]

برای نصب ماژول ASP بنا به نسخه سیستم عامل ویندوزتان، مراحل زیر را انجام دهید:

در Windows Server 2008 یا Windows Server 2008 R2:

۱-      در نوار taskbar روی start کلیک نمایید، سپس Administrative Tools را انتخاب کرده و روی Server Manager کلیک نمایید.

۲-      در پنجره Server Manager گره ی Roles را باز کنید و روی (Web Server (IIS کلیک نمایید.

۳-      در پنجره (Web Server (IIS، قسمت Role Services را آورده و روی Add Role Services کلیک نمایید.

۴-      در پنجره Select Role Services از قسمت Add Role Services Wizard گزینه ASP را مانند شکل زیر انتخاب نمایید.

برای کمک به تعدیل منابعی که IIS 7 استفاده خواهد کرد، شما می توانید تنظیمات را برای وضعیت جلسه معین کنید. برای مثال، ویژگی max در واقع حداکثر تعداد جلسات را جهت ذخیره سازی بیان می دارد و ویژگی timeout مدت زمان هر جلسه ی ASP را مشخص می کند. اگر برنامه ها نیازی به وضعیت جلسه نداشته باشند، با قرار دادن ویژگی allowSessionState به وضعیت false وضعیت جلسه ASP نمایش داده نخواهد شد.

قابلیت ها:

 نسخه ی IIS 7.5: عنصر <session>  در IIS 7.5 اصلاح نشده است.

نسخه ی IIS 7.0: عنصر <session> در <asp> در این نسخه از IIS معرفی شده است.

نسخه ی IIS 6.0: به جای عنصر  <session>، ویژگی های IIS 6.0 metabase که در زیر اشاره شده جایگزین <session> شده اند:

  • AspAllowSessionState
  • AspKeepSessionIDSecure
  • AspSessionMax
  • AspSessionTimeout

چگونگی پیکربندی تنظیمات وضعیت جلسه ASP برای یک وبسایت یا برنامه کاربردی از طریقManager  IIS :

۱-      برنامه ی Internet Information Services (IIS) Manager را باز کنید:

  • در صورتیکه سیستم عامل شما Windows Server 2008 یا Windows Server 2008 R2 است، برای اجرای برنامه ی IIS Manager مراحل زیر را انجام دهید:
  • در نوار taskbar روی گزینه ی start کلیک کنید و سپس گزینه ی Administrative Tools را انتخاب نموده و روی گزینه ی Internet Information Services (IIS) Manager کلیک نمایید.
  • در صورتیکه سیستم عامل شما Windows Vista یا Windows 7 است، برای اجرای برنامه ی IIS Manager مراحل زیر را انجام دهید:
  • در نوار taskbar روی گزینه ی start کلیک نمایید و سپس گزینه ی Control Panel را انتخاب کنید.
  • روی گزینه ی Administrative Tools دو بار کلیک کنید و سپس روی Internet Information Services (IIS) Manager دو بار کلیک کنید.

۲-      در پنجره ی Connections نام سرور خود را یافته و گره آنرا باز کنید. سپس گره ی Sites را باز کرده و وبسایت و یا برنامه کاربردی خود که قصد پیکربندی آنرا دارید انتخاب کنید.

۳-      در پنجره Site  Home یا Application Home ، روی ASP دو بار کلیک نمایید

۴-  همانند شکل ۵، در پنجره ASP گره قسمت Session Properties را باز کنید و تنظیمات دلخواهتان را اعمال نمایید.

۵-      حال کافی است روی گزینه ی Apply  در پنجره ی Actions کلیک نمایید.

پیکربندی:

ویژگی ها(Attributes):

  • allowSessionState: یک ویژگی Boolean قابل تغییر است. مشخص کننده فعال یا عدم فعال بودن پایداری وضعیت جلسه برای یک برنامه ی کاربردی است. مقدار پیش فرض آن true می باشد.
  • keepSessionIdSecure: یک ویژگی Boolean قابل تغییر است. اگر یک کانال جلسه امن برای عبورSession ID اختصاص داده شود،  مشخص می‌کند که آیا یک session ID بعنوان یک cookie امن ارسال شده است یا خیر. مقدار پیش فرض آن true می باشد. پیش از این درباره مفهوم cookies چیست بسیار صحبت کرده ایم.
  • Max:یک ویژگی از نوع داده ی uint (عدد صحیح بدون علامت) است. حداکثر تعداد جلسات هم‌زمان را معین می کند. مقدار پیش‌فرض آن ۴۲۹۴۹۶۷۲۹۵ است.
  • Timeout: یک ویژگی از نوع timeSpan (گستره زمانی) می‌باشد که می‌توان مقدار آن را تغییر داد. بیان کننده مدت زمان بین در خواست های ارسالی از هر شیء (Object) جلسه به سرور است. مقدار پیش‌فرض آن ۰۰:۲۰:۰۰ می باشد.

نمونه پیکربندی session در  web.config:

نمونه ی پیکربندی زیر، وضعیت جلسه ASP را فعال کرده و حداکثر تعداد جلسات ASP را ۱۰۰۰ قرار می دهد. و مقدار time-out جلسه را برای وبسایت پیش‌فرض ۱۰ دقیقه قرار می دهد.

 

[pre]

<“location path=”Default Web Site>

   <system.webServer>

      <asp>

         <“session allowSessionState=”true” max=”۱۰۰۰″ timeout=”۰۰:۱۰:۰۰>

      </asp>

   </system.webServer>

</location>

[/pre]

 

کد های نمونه:

AppCmd.exe:

کد زیر در واقع یک Command Line Tool برای مدیریت IIS 7 (و بالاتر) می باشد که تمام عملکرد کلیدی مدیریتی سرور را مشخص می کند. نمونه کد زیر که می بایستی در CMD (محیط command) وارد شود، وضعیت جلسه ASP را فعال می نماید و حداکثر تعداد جلسات همزمان ASP را ۱۰۰۰ قرار می دهد . سپس time-out جلسه را برای Default Web Site بر ۱۰ دقیقه قرار می دهد.

[pre]

appcmd.exe set config “Default Web Site” -section:system.webServer/asp /session.allowSessionState:”True” /commit:apphost

appcmd.exe set config “Default Web Site” -section:system.webServer/asp /session.max:”۱۰۰۰″ /commit:apphost

appcmd.exe set config “Default Web Site” -section:system.webServer/asp /session.timeout:”۰۰:۱۰:۰۰″ /commit:apphost

[/pre]

توجه: از قرار دادن پارامتر commit برای apphost زمانیکه از AppCmd.exe برای پیکربندی این تنظیمات استفاده می کنید، اطمینان حاصل نمایید.

در زبان برنامه نویسی C#:

[pre]

using System;

using System.Text;

using Microsoft.Web.Administration;

internal static class Sample

{

   private static void Main()

   {

      using (ServerManager serverManager = new ServerManager())

      {

         Configuration config = serverManager.GetApplicationHostConfiguration();

         ConfigurationSection aspSection = config.GetSection(“system.webServer/asp”, “Default Web Site”);

         ConfigurationElement sessionElement = aspSection.GetChildElement(“session”);

         sessionElement[“allowSessionState”] = true;

         sessionElement[“max”] = ۱۰۰۰;

         sessionElement[“timeout”] = TimeSpan.Parse(“۰۰:۱۰:۰۰”);

         serverManager.CommitChanges();

      }

   }

 [/pre]

در زبان برنامه نویسی VB.NET:

[pre]

Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim aspSection As ConfigurationSection = config.GetSection("system.webServer/asp", "Default Web Site")
      Dim sessionElement As ConfigurationElement = aspSection.GetChildElement("session")
      sessionElement("allowSessionState") = True
      sessionElement("max") = 1000
      sessionElement("timeout") = TimeSpan.Parse("00:10:00")
      serverManager.CommitChanges()
   End Sub

[/pre]

پیشنهاد می کنیم مقاله ویژوال بیسیک دات نت را مطالعه بفرمایید.

در زبان برنامه نویسی JavaScript:

 [pre]

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var aspSection = adminManager.GetAdminSection("system.webServer/asp", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var sessionElement = aspSection.ChildElements.Item("session");
sessionElement.Properties.Item("allowSessionState").Value = true;
sessionElement.Properties.Item("max").Value = 1000;
sessionElement.Properties.Item("timeout").Value = "00:10:00";
adminManager.CommitChanges();
 [/pre]
 

در زبان برنامه نویسی

 VBScript:

[pre]

Set adminManager = WScript.CreateObject(“Microsoft.ApplicationHost.WritableAdminManager”)

adminManager.CommitPath = “MACHINE/WEBROOT/APPHOST”

Set aspSection = adminManager.GetAdminSection(“system.webServer/asp”, “MACHINE/WEBROOT/APPHOST/Default Web Site”)

Set sessionElement = aspSection.ChildElements.Item(“session”)

sessionElement.Properties.Item(“allowSessionState”).Value = True

sessionElement.Properties.Item(“max”).Value = 1000

sessionElement.Properties.Item(“timeout”).Value = “۰۰:۱۰:۰۰”

adminManager.CommitChanges()

[/pre]

منابع:

http://www.codeproject.com

http://www.iis.net

سوالات متداول

پس از انتخاب ASP، سه دسته تنظیم را می توان دید که عبارتند از: گروه اول مشی (behavior)، گروه دوم تفسیر (compilation) و گروه سوم سرویسها(services)
ماژول ASP زمانی کاربرد دارد که نرم افزار ( یا application ) در ASP نوشته شده باشد و قصد داشته باشید تنظیمات و پیکربندی مد نظرتان را برای نرم افزار طراحی شده اعمال کنید. تنظیماتی از قبیل نحوه کنترل رفع اشکال ( debugging ) ، تنظیمات بازگشت خطا، تنظیمات character set مورد استفاده در برنامه، زبان برنامه نویسی مورد استفاده در برنامه و اینکه آیا در صورت بروز خطا، رویداد ثبت شود یا خیر.

اشکان نصیری

مدیر سرور در ایران هاست با +۵ سال سابقه در صنعت میزبانی وب و کارشناسی ارشد MBA

دیدگاهتان را بنویسید

نوشته های مشابه

دکمه بازگشت به بالا