آشنائی با سيستم پيكربندی برنامه های وب در ASP.NET 2.0 New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 دوشنبه  4  ارديبهشت  1396  2017  Apr.  24   Monday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

 سيستم پيكربندی ASP.NET 2.0 (بخش سوم )

 مديريت وب

9627

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>

در بخش چهارم به بررسی ساير تنظيمات پيكربندی خواهيم پرداخت .



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382