تبلیغات
آموزشASP.NET - سیستم پیكربندی ASP.NET 2.0 (بخش سوم )
 
فردا روشن اسن به
آموزشASP.NET
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 
پنجشنبه 11 فروردین 1390 :: نویسنده : ارش کاکاوند
در مجموعه مقالات سیستم پیكربندی 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>

در بخش چهارم به بررسی سایر تنظیمات پیكربندی خواهیم پرداخت . که فعلا آماده نیست ولی سعی میکنم خیلی زودآمادش کنم.





نوع مطلب :
برچسب ها :
لینک های مرتبط :


یکشنبه 26 شهریور 1396 12:08 ق.ظ
These are genuinely fantastic ideas in about blogging.
You have touched some fastidious factors here. Any way
keep up wrinting.
شنبه 18 شهریور 1396 03:48 ق.ظ
Excellent site. Plenty of useful info here. I am sending it to
a few buddies ans also sharing in delicious. And obviously,
thanks for your effort!
چهارشنبه 15 شهریور 1396 03:48 ق.ظ
It's a shame you don't have a donate button! I'd most certainly donate to this fantastic blog!

I suppose for now i'll settle for bookmarking and adding your RSS feed to my
Google account. I look forward to new updates and will talk about this site with my Facebook group.
Chat soon!
دوشنبه 30 مرداد 1396 03:48 ب.ظ
I think the admin of this website is actually working hard in favor of his website, because here every
information is quality based information.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ

سلام من آرش کاکاوند دانشجوی رشته کامپیوتر هستم و ورود شما رابه دنیای aspخوش امدمیگم.حتما نظر بدین تا من کارم رو بهتر ادامه بدم

مدیر وبلاگ : ارش کاکاوند
مطالب اخیر
نویسندگان
صفحات جانبی
نظرسنجی
شما کدام یک از برنامه های زیر را برای طراحی وب انتخاب می کنید؟








جستجو

آمار وبلاگ
کل بازدید :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل پست ها :
آخرین بازدید :
آخرین بروز رسانی :