عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
سيستم پيكربندی ASP.NET 2.0 (بخش سوم ) |
مديريت وب |
10254 |
7 |
4.3 |
با توجه به جایگاه داده در عصر حاضر و لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و خدمات خود را از طریق سایت www.fabak.ir به مخاطبان محترم عرضه می نماید
 |
سيستم پيكربندی ASP.NET 2.0
سيستم پيكربندی ASP.NET 2.0 (بخش
سوم )
در مجموعه مقالات سيستم پيكربندی
ASP.NET 2.0 ، تاكنون به موارد زير اشاره شده است
:
-
بخش اول
: آشنائی با اصول
اوليه سيستم پيكربندی ASP.NET 2.0
-
بخش دوم
: بررسی تنظيمات Connection string و Session State
در اين بخش به بررسی
ساير تنظميات پيكربندی
خواهيم پرداخت .
پيكربندی ترجمه
ASP.NET ، صفحات وب ، سرويس های وب ، http handlers ، فايل های برنامه (
نظير Global.asax ) و فايل های منبع را به صورت پويا ترجمه می نمايد . فايل
های فوق به صورت پويا و همزمان با اولين درخواست ، ترجمه می گردند .
هر نوع تغيير در فايل ترجمه شده پويا باعث می
گردد كه تمامی منابع متاثر از
تغييرات شوند و به صورت پويا invalidated و مجددا" ترجمه
گردند . مكانيزم فوق پياده
كنندگان را قادر می سازد كه به سرعت برنامه های وب را با حداقل overhead اجراء
نمايند. چراكه پس از تشخيص تغييرات و ترجمه پويا ، می توان
بلافاصله از امكانات برنامه ها استفاده نمود .
پتانسيل ترجمه پويا در ASP.NET 2.0 نسبت به ASP.NET 1.x افزايش و فايل های ديگری
نظير كلاس فايل ها را نيز تحت پوشش قرار می دهد .
برای پيكربندی تنظيمات ترجمه از
بخش <compilation> در فايل های web.config و يا machine.config استفاده می گردد .
ASP.NET engine ، در زمان مورد نياز صفحه را ترجمه و كد توليد شده را در code
cache ذخيره می نمايد .از cache فوق در زمان اجرای صفحات ASP.NET استفاده می گردد .
كد زير گرامر بخش <compilatioin> را نشان می دهد .
<!-- compilation Attributes -->
<compilation
tempDirectory="directory"
debug="[true|false]"
strict="[true|false]"
explicit="[true|false]"
batch="[true|false]"
batchTimeout="timeout in seconds"
maxBatchSize="max number of pages per batched
compilation"
maxBatchGeneratedFileSize="max combined size in KB"
numRecompilesBeforeAppRestart="max number of
recompilations
defaultLanguage="name of a language as specified
in a <compiler/> element below"
<compilers>
<compiler
language="language"
extension="ext"
type=".NET Type"
warningLevel="number"
compilerOptions="options"/>
</compilers>
<assemblies>
<add
assembly="assembly"/>
</assemblies>
<codeSubDirectories>
<codeSubDirectory directoryName="sub-directory name"/>
</codeSubDirectories>
<buildproviders>
<buildprovider
extension="file extension"
type="type reference"/>
</buildproviders>
</compilation>
|
توضيحات :
-
batch : نوع ترجمه را مشخص می نمايد (مقدار پيش فرض
True است ) .
-
maxBatchSize : حداكثر تعداد صفحات و يا كلاس را كه
می توان در يك batch ترجمه نمود، مشخص می نمايد. ( مقدار پيش فرض 1000
)
-
maxBatchGeneratedFileSize : حداكثر اندازه خروجی يك
batch assembley ترجمه شده را نشان می دهد ( مقدار پيش فرض 3000 )
-
batchTimeout : زمان ( بر حسب ثانيه ) ترجمه batch را
مشخص می نمايد . در صورتی كه زمان فوق قبل از اتمام ترجمه به پايان رسيده باشد ، يك
exception محقق می گردد ( مقدار پيش فرض پانزده ثانيه است)
.
-
debug : آيا می بايست اسمبلی های توليد شده را ترجمه
ويا ديباگ نمود ؟ (مقدار پيش فرض False ).
-
defaultLanguage : زبان برنامه نويسی پيش فرض نظير VB
و يا #C برای استفاده در فايل های ترجمه پويا را مشخص می نمايد.
-
tempDirectory : دايركتوری مورد نظر برای استفاده موقت
در حين ترجمه را مشخص می نمايد . به صورت پيش فرض ، ASP.NET
فايل موقت را در مسير
[WinNT\Windows]\Microsoft.NET\Framework\[version]\Temporary ASP.NET ايجاد می نمايد .
-
compilers : بخش <compilers>
، می تواند شامل چندين زير عنصر <compile> باشد كه از
آنان به منظور ايجاد يك تعريف
جديد كمپايل استفاده می گردد .
-
numRecompilesBeforeAppRestart : تعداد
دفعات ترجمه ، قبل
از راه اندازی برنامه مشخص می نمايد .
قابليت های مرورگر
شناسائی و استفاده از پتانسيل مرورگرها برای برنامه های وب ضروری است .
browser capabilities component بگونه ای طراحی شده است
تا بتواند
از مرورگرهای مختلفی نظير opera
, netscape و IE حمايت نمايد . با استفاده از <browserCaps> می توان تنظيمات
پيكربندی را برای
browser capabilities component مشخص نمود . از عنصر فوق می توان در سطوح
متفاوتی نظير ماشين ، سايت ، برنامه و زير دايركتوری ها استفاده نمود .
پس از دريافت يك درخواست از يك مرورگر ، browser capabilities component
قابليت های مرورگر را از طريق هدر درخواست شناسائی و برای هر نوع مرورگر
يك مجموعه از تنطيمات مرتبط با برنامه را ترجمه می نمايد . تنظيمات فوق
را می توان به صورت ايستا انجام و يا از هدر درخواست ارسالی استفاده
نمود . يك برنامه می تواند
در صورت ضرورت تنظيمات فوق را را توسعه و يا تغيير دهد .
در ASP.NET 2.0 تمامی اطلاعات مربوط به قابليت های مرورگر
در "فايل های تعريف مرورگر" ارائه
می گردند . اين نوع فايل ها ، فايل هائی با انشعاب
browser.* و فرمت
xml می باشند . يك فايل ممكن است شامل تعريف بيش از يك
نوع مرورگر باشد . فايل های فوق در زمان نصب فريمورك
در آدرس
[WinNT\Windows]\Microsoft.NET\Framework\xxxxx\CONFIG\Browsers نصب می گردند . ( در ASP.NET 1.x ، اطلاعات مربوط به
پتانسيل هر مرورگر در فايل های machine.config و
web.config ذخيره می گردد
).

هر مرورگر به عنوان يك موجوديت و با استفاده از عنصر <browser>
تعريف و دارای يك id مختص به خود
است كه يك كلاس از مرورگر را به همراه كلاس parent مشخص
می نمايد . <browsers>
، عنصر ريشه در فايل های تعريف مرورگر
است و از خصلت id به منظور تمايز بين تعاريف هر يك
از مرورگر ها ( در صورتی كه بيش از يك مورد در يك فايل
تعريف شده باشد ) ، استفاده می گردد .
قبل از اجرای يك برنامه ASP.NET ، فريمورك تمامی تعاريف
مرورگر را در يك اسمبلی ترجمه و
آنان را در GAC ذخيره می
نمايد .
در صورت تغيير فايل های تعريف مرورگر در سطح سيستم ، تغييرات به صورت اتوماتيك بر روی هر يك از برنامه های
ASP.NET اعمال نخواهد شد . بنابراين ، اين مسئوليت پياده كنندگان و يا
ابزارهای نصب است كه اطلاعات فوق را بهنگام نمايند . اطلاعات بهنگام شده مرورگر را
می توان با استفاده از برنامه aspnet_regbrowsers.exe برای
تمامی برنامه های ASP.NET ارسال نمود . پس از اجرای
برنامه فوق ، اطلاعات مرورگر مجددا" ترجمه و اسمبلی جديد در
GAC ذخيره می گردد . از اسمبلی فوق تمامی برنامه های
ASP.NET استفاده می نمايند .
خطاهای سفارشی
در صورت بروز اشكال در هر يك از صفحات
ASP.NET ، يك صفحه خطاء نمايش داده می شود كه در آن كد نوشته شده به همراه
مكان ( شماره خط ) بروز خطاء نشان داده می شود . نمايش كد منبع و مكان بروز خطاء در
يك صفحه چالش های مختص به خود را دارد :
-
نمايش كد منبع و پيام خطاء برای كاربران عادی
هيچگونه ارزش اطلاعاتی ندارد، پس چرا می بايست آنان را نمايش داد ؟
-
نمايش كد منبع و پيام خطاء بيش از همه مهاجمان فرصت
طلب را خوشحال خواهد كرد چراكه شرايط مناسبی برای ارتقاء دانش آنان به منظور برنامه
ريزی حملات فراهم می گردد .
ASP.NET با ارائه يك زيرساخت
مناسب امكان پيشگيری از نمايش اينگونه خطاها را در اختيار پياده كنندگان برنامه های
وب قرار می دهد . بدين منظور از بخش <customeErrors>
در فايل web.config
برای تعريف پيام های خطاء
سفارشی
و سياست نمايش جزئيات خطاء استفاده می گردد . نحوه استفاده از عنصر فوق به صورت زير
است :
<customErrors
defaultRedirect="[url]" mode="[on/off/remote]">
<error statusCode="[statuscode]" redirect="[url]" />
</customErrors>rs>
|
توضيحات :
-
defaultRedirect : آدرس
صفحه ای را كه پس از بروز خطاء مرورگر كاربران به آن هدايت
می گردند را مشخص می
نمايد .
-
mode : مقدار نسبت داده شده به اين خصلت وضعيت نمايش
خطاء سفارشی را مشخص می نمايد . در صورتی كه مقدار اين خصلت on
باشد ، خطاهای سفارشی نمايش داده می شوند
. در صورتی كه مقدار
mode معادل off باشد ، خطاهای سفارشی نمايش داده
نخواهند شد و در صورتی كه مقدار اين خصلت remote در نظر
گرفته شود ، خطاهای سفارشی صرفا" برای كاربران از راه دور نمايش داده می شود
.
-
customeErrors : اين بخش شامل چندين زيرعنصر
<error> است كه از آنان به منظور تعريف خطاهای
سفارشی استفاده می گردد . هر زير عنصر <error> می
تواند شامل يك خصلت statusCode و يك
URL باشد .
<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="/DefaultErrorPage.htm">
<error
statusCode="500"
redirect="/error/ServerError.htm"/>
<error
statusCode="404"
redirect="/error/Filenotfound.aspx"/>
<error
statusCode="403"
redirect="/error/Forbidden.aspx"/>
</customErrors>
</system.web>
</configuration>
|
در بخش چهارم به بررسی ساير تنظيمات پيكربندی خواهيم
پرداخت .