طراحی و توسعه وب سایتطراحی وب سایت

معرفی فایل ApplicationHost.config

این فایل مربوطه دسته فایل های پیکربندی می باشد . محتوای آن شامل همه ی سایت ها ، برنامه های کاربردی، فلدرهای مجازی و application pool ها می شود.(مشابه machine.config,web.config برای  انجام تنظیمات و .Net Framework) زمانیکه وب سرور نصب می شود این فایل تنها فایل قابل استفاده می باشد.بخش configSections

برای ثبت کلیه ی register های IIS  و بخش windows activation system مورد استفاده قرار می گیرد.

pic3

مسیر پیش فرض این فایل در فلدر system32inetsrv قرار دارد که در نسخه های جدید iis در مسیر system32inetsrvconfig قرار گرفته است.÷پیچیده ترین بخش این فایل قسمت system.webServer است بنابراین تسلط به آن ضروری می باشد.

نکات زیر را در نظر داشته باشید :

۱-این فایل محتوای Section های مختلف را نگهداری می کند. به طور =پیش فرض بخشی از این قسمت ها خالی بوده و یا کامل نیستند. مقادیر سایر section ها از شمای پیش فرض گرفته شده است. مرجعه کامل شما به همراه سایر ویژگی های آنها در فایل xml که در مسیر زیر است قرار داده شده است :

%windir%system32inetsrvconfigschemaIIS_Schema.xml

ASPNET_Schema.xml و FX_Schema.xml نامهای دیگر این فایل می باشند.

۲-قبل  از هز تغییری اقدام به تهیه بک از فایل مربوطه نمایید.

در ادامه مقاله در مورد ساختار شما (schema) و کارهایی که می توانید بر روی آن انجام دهید صحبت خواهیم کرد.

چگونه می توان فایل شما (schema) را خواند :

همانطوریکه قبلا نیز گفته شد، برای هر section یک سری اطلاعات schema وجود دارد. بنابراین مقادیر مناسب هر بخش و صفات آنها به همراه رنجی که مجاز هستند قابل تشخیص می باشند.

شما برای هر بخش

پیکربندی در قالب یک فایل xml تعریف شده است.

برای خواندن شما از قالب دستور زیر استفاده می کنیم :

<attribute-name>=”<default-value>”  [<metadata>] [<description>]

<attribute-name : نام صفت می باشد و هر صفت بایستی دارای یک نام باشد.

<default-value> مقدار پیش فرضی که مورد استفاده است در آن قرار می گیرد اگر این مقدار خالی باشد و هیچ صفتی دارای مقدار پیش فرض نخواهد بود

<metadata> : چندین آیتم را می توان در این بخش تعریف کرد :

نوع اجرایی صفت که می تواند BOOL,ENUM,FLAGS,INT,INT64,STRING,TIMESPAN باشد.

به عنوان مثال Timespan نمایش دهنده ی واحد زمان است که یک عدد و یا رشته در آن قرار می گیرد.

<description> توصیفی در مورد  صفت تعریف شده می باشد.

بخش schema

تگ <sectionSchema> واحد اصلی اطلاعات شما می باشد.یکی از صفات آن name است و سایر صفات زیر مجموعه ای از این صفت می شوند .نمونه این تگ  به شرح زیر است :

<sectionSchema name=””  <!– [String, Required] [XML full path of the section] –> >
<!– sub-elements here describing rest of schema; –>
<!– their description is right below in the doc. –>
</sectionSchema>

شمای attribute :

برای تعریف هر صفت از تگ <attribute> استفاده می شود . عنصر <attribute> را می توان مستقیما در  <sectionSchema> و یا <collection> تعریف کرد. شمای <attribute> بایستی یک نام و نوع داشته باشداین تگ می تواند یک مقدار پیش فرض داشته باشد.همچنین  قالب timespan را می توان در این تگ تعریف کرد.همچنین قوانین اعتبار سنجی را نیز توسط این تپ می توان تعریف کرد.

در زیر نمونه ای از این تگ به همراه مقادیر آن آورده شده است :

<attribute

    name=””  [String, Required] [XML name of the attribute]

    type=””  [bool|enum|flags|int|int64|string|timeSpan, Required][Runtime type]

    required=”false”  [bool] [Indicates if must be set]

    isUniqueKey=”false”    [bool] [Serves as the collection key]

    isCombinedKey=”false”  [bool] [Part of a multi-attribute key]

    defaultValue=””  [String] [Default value or comma-delimited flags]

    encrypted=”false”  [bool] [Indicates if value persisted encrypted]

    allowInfinite=”false”  [bool] [Indicates if “Infinite” can be set]

    timeSpanFormat=”string” [string|seconds|minutes] [hh:mm:ss or number]

    validationType=””       [See validation below]

    validationParameter=””  [See validation below]

/>

 

عنصر sectionSchema  مبنای اطلاعات شما می باشد.

عناصر schema  : هر عنصر در تگ <element> تعریف می شود. عناصر می توانند به شکل سلسله مراتبی تعریف شوند. یک المنت نگهدارنده ای برای سایر صفات است.

مجموعه schema ها :

هر مجموعه در تگ <collection> قرار می گیرد COLLECTION ها شامل چندین عنصر می باشند سایر تگ هایی که در این عنصر قرار می  گیرند شامل : Add,Remove,Clear می باشند اما برخی دیگر از عباراتی مانند site به جای add استفاده می کنند.  به عنوان مثال دو سطح پیکربندی زیر را در نظر بگیرید :

applicationHost.config و web.config  در فایل اولی مقدار collection به شکل زیر است :

<myCollection>
<add value=”1″/>
</myCollection>

و در دومی معادل :

<myCollection>

  <add value=”2″ />

</myCollection>

با ادغام این دومقدار زیر را خواهیم داشت

<myCollection>

     <add value=”1″/>

     <add value=”2″/>

  </myCollection>

با قرار دادن مقدار زیر در شما میتوان به collection اجازه داد تا مداخل های آن تکرار شوند. این تکنیک بیشتر در .Net Framework به جهت پشتیبانی از legacy collections انجام میشود

allowDuplicates=”true”

در برخی collection ها صفات اضافی نیز میتوان قرار داد :

با قرار دادن صفت زیر این امکان فراهم میگردد :

allowUnrecognizedAttributes=”true”

یکنمونه collection به همراه صفات آن در زیر آمده است :

<collection
addElement=””     [String] [Name of Add directive, if supported] removeElement=””  [String] [Name of Remove directive, if supported] clearElement=””   [String] [Name of Clear directive, if supported] defaultElement=”” [applicationDefaults|applicationPoolDefaults|siteDefaults|virtualDirectoryDefaults] [See isCollectionDefault] mergeAppend=”true”  [bool] [Indicates whether or not deepest set values are appended] allowDuplicates=”false”  [bool] [Indicates if multiple elements may have the same keys] allowUnrecognizedAttributes=”false”  [bool] [Indicates if non-schema attributes ok] />

فروشگاه ساز ایران‌هاست
یک راه حل آسان، سریع و کاربردی
برای ورود به فضای آنلاین

فروشگاه آنلاین راه اندازی کنید

Enum schema :

هر صفتی از نوع enum بایستی توسط تگ <enum> تغریف شود هر مقدار بایستی یک نام  ومقدار عددی را داشته باشد .

<enum name=””  [String, Required] [Friendly name of the enum] value=”” [int, Required] [Numeric value] />

Flags schema:

هر صفتی از flag بایستی توسط تگی با همین نام در شما تعریف شود.هر flag دارای نامو مقداری است که با ترکیب شدن آن با مقادیر دیگر یک combination را شکل دهی نماید در این رابطه مثال زیر را مشاده نمایید :

<flags
name=””  [String, Required] [Friendly name of the flag] value=”” [int in power of 2, Required] [Numeric value] />

اعتبار سنجی صفات :

این اعتبار سنجی زمانی انجام می شود که بخواهم بخشی از XML را از یک فایل بخوانیم. در صورتیکه این اعتبار سنجیfail شود ، عملیات مورد نظر نیز لغو میگردند.

هر صفت میتواند یک اعتبار سنج برای مقدارش تعریف نماید. اعتبار سنج های زیر پشتیبانی می شوند :

ApplicationPoolName validator

از آن برای بررسی برخی کاراکترها استفاده می شود و زمانیکه از کارکترهایی |<>&” مانند استفاده شود failمی شود.

نمونه

validationType=”applicationPoolName” validationParameter=””

IntegerRange validator

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

validationType=”integerRange”
validationParameter=”<minimum>,<maximum>[,exclude]”

NonEmptyString validator

اگر یک رشته وارد شود اعتبار سنج مذکور fail می شود.

validationType=”nonEmptyString”
validationParameter=””

SiteName validator

با وارد شدن کارکترهایی مانند /.? این اعتبار سنج خطا را گزارش می دهد.

validationType=”siteName”
validationParameter=””

TimeSpanRange validator

اگر عدد وارد شده بر حسب زمان از محدوده تعریف شده بیشتر باشد این اعتبار سنج خطایی را گزارش میدهد:

نمونه :

validationType=”timeSpanRange”

validationParameter=”<minimum>,<maximum>,<granularity>[,exclude]”

هدر XML :

هر فایل پیکربندی مجموعه ای از تگهای XML است که میتواند با خطی مشابه زیر آغاز گردد :

<?xml version=”1.0″ encoding=”UTF-8″ ?>

همچنین کل محتوای آن نوع فایل ها در تگ<configuration> قرار می گیرد :

بخش configsection

در این تگ لیست سایر تگ ها قرار می گیرد. سایر فایل های پیکربندی نیز میتوانند دارای چنین بخشی باشند که در بالاترین سطح فایل قرار گرفته باشد.در فایل های web.config از بخش هایی که در سطح والد تعریف شده است نمی توان استفاده کرد وهمچنین نمی توان بخش های دیگر را در این  سطححذف کنند.

نمونه ای از این تگ به شکل زیر میباشد :

<section

    name=””  [Required, Collection Key] [XML name of the section]

    allowDefinition=”Everywhere” [MachineOnly|MachineToApplication|Everywhere] [Level where it can be set]

    overrideModeDefault=”Allow”  [Allow|Deny] [Default delegation mode]

/>

Schema

Locking یا قفل گذاری :

بیشتر section ها در IIS به طور پیش فرض در حالت قفل شده قرار دارندبا قرار دادن دستور زیر در تگsection میتوان عملیات قفل گذاری را انجام داد :

overrideModeDefault=”Deny”

به منظروبرداشتن قفل از کدها زیر استفاده نمایید :

<location path=”Default Web Site” overrideMode=”Allow” >

  <system.webServer>

    <asp/>

  </system.webServer>

</location>

این کدها تنها برای وب سایت جاری عمل کرده و اگر قصد دارید عمللیات قفل گذاری بر روی سایر سایت ها نیز انجامشود کافی است از کد زیر استفاده کنید :

<location path=”.” overrideMode=”Allow”>

    <system.webServer>

         <asp/>

    </system.webServer>

</location>

نکته : در کد بالا هر دو کد path=”.” and path=”” یکسان می باشند.

منبع :

http://www.iis.net/learn/get-started/planning-your-iis-architecture/introduction-to-applicationhostconfig

به این نوشته امتیاز دهید
به این نوشته امتیاز دهید
[Total: 0 Average: 0]

با کارت بانکی باشگاه ایران هاست پولتان به حسابتان باز می گردد.

همین حالا رایگان عضو شوید

مدیر بلاگ

مشخصات مدیر

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

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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