چند نکتهی تکمیلی
- اگر هاست شما تمام سایتها را با یک
Application pool
مدیریت میکند، کرش یکی از چند ده سایت دیگر میتواند سبب ریاستارت شدن
سایت شما هم بشود؛ چون برنامهها از همه ایزوله نشدهاند. راه حل آن ایجاد
یک Application
pool مجزا به ازای هر سایت هست (توسط هاستدار).
زمانیکه تمام سایتها با یک Application pool واحد مدیریت میشوند،
تمام آنها توسط یک وهله از w3wp.exe اجرا خواهند شد. با تعریف Application
poolهای مجزا، هر سایت، یک وهلهی مجزا از w3wp.exe را به خود اختصاص
خواهد داد. یعنی اگر Task manager سرور را بررسی کنید، به ازای هر سایت، یک
w3wp.exe با pid مجزا قابل مشاهده است. به این ترتیب اگر pid=1234 کرش
کرد، تاثیری روی pid=4321 نخواهد داشت.
- یک برنامهی ASP.NET پس از مدتی بیکاری (قابل تنظیم در Application pool برنامه)، به صورت خودکار توسط IIS از حافظه خارج میشود. با درخواست بعدی که به آن برنامه میرسد (مثلا گشودن یک صفحهی آن توسط یک کاربر)، مجددا از صفر اجرا خواهد شد. این مورد نیز به معنای ریاستارت کامل برنامه است.
- در تنظیمات Application pool موارد زیادی را میتوان تنظیم کرد که سبب ریاستارت شدن برنامه میشوند. برای مثال اگر مصرف CPU و یا حافظهی برنامه به حد مشخصی رسید، برنامه ریاستارت شود و امثال آن.