برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

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

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

پیکربندی ترجمه
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 فایل موقت را در مسیر
     [WinNTWindows]Microsoft.NETFramework[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 می باشند . یک فایل ممکن است شامل تعریف بیش از یک نوع مرورگر باشد . فایل های فوق در زمان نصب فریمورک در آدرس
[WinNTWindows]Microsoft.NETFrameworkxxxxxCONFIGBrowsers نصب می گردند . ( در 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>

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

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد