مشکلی که بیشتر مدیران سایت با آن مواجه هستند نیاز مبرم به اجرای وظایف و یا آماده کردن آنها برای برنامه های کاربردی می باشد.. برنامه های تحت وب پیچیده و بزرگ پردازش و منابع بالایی را نیاز دارند.
راه کار :استفاده از ویژگی IIS 8.0 Application Initialize
این ویژگی از iis (IIS 8.0 Application Initialization ) مدیران سایت را قادر می سازد تا وظایف IIS را پیکربندی کرده تا با شروع اجرای یک برنامه کاربردی مقادیر ثابت آن را در قالب Placeholder بازگردانده تا با اتمام کار برنامه همچنان در دسترس باشند.
ویژگی Application Initialization از ترکیبی از role های global و application-specific استفاده کرده که زمان و نحوه ی رسیدگی به برنامه های کاربردی را به IIS می گویند. این ویژگی از IIS Url Rewrite Module نیز پشتیبانی می کند تا بتواند محتواهای پیچیده را نیز به خوبی مدیریت کند.
پیش نیازها :
ویژگی Application Initialization جهت نصب به IIS8 نیاز دارد . همچنین نصب آن تحت ویژگی با نام Application Development انجام می شود.
این ویژگی در دو فایل قابل افزودن می باشد :
یکی در فایل applicationHost.config و دیگری در web.config . محتوای فایل applicationHost.config شامل تنظمیات Global بوده در حالیکه تنظیمات web.config بیشتر جنبه ی محلی (local ) دارند.
تغییرات در applicationHost.config :
فایل مذکور که در مسیر %WINDIR%system32inetsrvconfig وجود دارد را باز کرده و بخش <applicationPools> را یافته و دنبال قسمتی با نام “.NET v4.5”. بگردید و آن را به شکل زیر تغییر دهید :
<add name=”.NET v4.5″ startMode=”AlwaysRunning” managedRuntimeVersion=”v4.0″ />
با این تنظیم application pool در حالت همیشه فعال باقی می ماند و application به طور دائمی منتظر دریافت درخواست ها است.
حال به تگ <sites> رفته و تگ <application> را به شکل زیر تغییر دهید :
<application path=”/appinit” preloadEnabled=”true” applicationPool=”.NET v4.5″>
تغییرات مورد نیاز در فایل web.config :
این فایل که در مسیر C:inetpubwwwrootappinit قرار دارد را یافته و در تگ <system.webServer> کدهای زیر را قرار دهید :
<applicationInitialization
remapManagedRequestsTo=”Startup.htm”
skipManagedModules=”true” >
<add initializationPage=”/default.aspx” />
</applicationInitialization>
اجرای برنامه :
توسط دستور زیر در command prompt سرویس World Wide Web را فراخوانی نمایید :
net stop w3svc & net start w3svc
سپس آدرس زیر را مرورگر تایپ نمایید :
http://localhost/appinit/default.aspx
حال مجدد فایل applicationHost.config را باز کرده و آن را به شکل زیر تغییر دهید :
<add name=”.NET v4.5″
startMode=”AlwaysRunning”
managedRuntimeVersion=”v4.0″ >
<recycling logEventOnRecycle=”Schedule”>
<periodicRestart requests=”۳۰″ />
</recycling>
</add>
تگ <recycling> به iis می گوید که worker process را به ازا هر ۳۰ درخواست HTTP لود نماید.
اجرای برنامه کاربردی برای بار دوم :
توسط دستور زیر در command prompt سرویس World Wide Web را فراخوانی نماید :
net stop w3svc & net start w3svc
سپس آدرس زیر را در مرورگر تایپ نمایید :
http://localhost/appinit/default.aspx
حال پنجره task manager را باز کرده و به تب process وارد شوید.
مطمئن شوید که فرآیند w3wp.exe در حالت اجرا قرار داشته باشد .
در این مرحله مرورگر خود را باز کرده و آن را refresh نمایید. مشاهده می کنید که در پنجره ی task manager فرآیند w3wp.exe دو بار اجرا شده است.
نتیجه اینکه به کار گیری محتوای ثابت به مشتریان تجربه ی بهتری را ارائه می نماید. فرایند initialization می تواند با آنلاین شدن سرور اتفاق بیفتد. با ترکیب Url Rewrite rules با Application Initialization انواع محتویات ثابت از قبل تولید شده ، برای Url های مختلف به کار گرفته می شود.
[irp posts=”۱۱۴۰۱″ name=”فایل ApplicationHost.config چیست و هر آنچه که بایستی در مورد آن بدانید”]
نمونه application:
ابتدا از طریق لینک زیر اقدام به دانلود برنامه ی کاربردی نمایید :
حال فایل zip را در فلدر wwwroot قرار دهید.
ساخت application در IIS8 :
بعد از unzip کردن appinit باید فلدری را به عنوان ASP.NET application در IIS8 پیکربندی نمایید.
نصب ماژول Url Rewrite :
برای نصب این ماژول می توانید به لینک زیر مراجعه نمایید :
http://www.iis.net/download/URLRewrite
پیکربندی ماژول Url Rewrite :
بعداز نصب این ماژول بایستی فایل applicationHost.config را تغییر دهید تا متغیر SKIP_MANAGED_MODULES بتواند از ان استفاده نماید.
فایل پیکربندی را گشوده و کد زیر را قبل از تگ <security> قرار دهید :
rewrite>
<allowedServerVariables>
<add name=”SKIP_MANAGED_MODULES” />
</allowedServerVariables>
</rewrite>
تغییرات را ذخیره نمایید.
نتیجه :
یک نمونه برنامه کاربردی در IIS اجرا و همچنین ویژگی Application Initialize برای اجرای وظایف IIS در IIS8 ارائه گردید.