چه زمان‌هايي يك برنامه‌ي ASP.NET ري استارت مي‌شود؟

براي ري استارت كردن يك برنامه‌ي ASP.NET حتما نيازي نيست تا IIS را متوقف و سپس راه اندازي كرد يا تنظيمات App pool برنامه را در IIS تغيير داد.

روش‌هاي ديگري نيز وجود دارند كه عدم آگاهي از آن‌ها مي‌تواند سبب بروز مشكلات عديده‌اي گردد و گاها خطايابي آن‌ها بسيار مشكل است؛ زيرا ري استارت شدن برنامه = از دست رفتن آني تمام سشن‌هاي InProc تمام كاربران سايت؛ پاك شدن كش برنامه در IIS؛ از دست رفتن تمام متغيرهاي استاتيك، Application State و مواردي از اين دست:

- نوشتن در پوشه bin برنامه (ايجاد فايل يا ايجاد پوشه يا تغيير نام پوشه‌ها و مواردي از اين دست). (بنابراين قرار دادن بانك اطلاعاتي برنامه در اين پوشه، اشتباه بوده و به همين جهت پوشه‌ي استاندارد App_Data طراحي شده است)

- نوشتن در فايل web.config برنامه (به صورت دستي، حتي در حد اضافه كردن يك فاصله يا توسط خود برنامه و يا استفاده از متد File.SetLastWriteTime). در اين حالت ASP.NET FileSystemWatcher بلافاصله وارد عمل شده و برنامه را ري استارت مي‌كند. (هدف اصلي وجودي اين فايل، برخورد فقط خواندني با آن است نه ذخيره سازي تنظيمات پوياي برنامه در آن. براي ذخيره سازي تنظيمات پويا، از بانك اطلاعاتي و يا يك فايل XML مجزاي از وب كانفيگ استفاده كنيد يا مواردي مشابه)

- هر گونه تغييري در فايل‌ها و يا پوشه‌هاي App_WebReferences ، App_Code ، Global.asax ، machine.config ، App_GlobalResources و App_LocalResources نيز سبب ري استارت برنامه خواهند شد.

- با ايجاد، حذف يا تغيير نام يكي از ساب دايركتوري‌هاي واقع شده در ريشه برنامه. بنابراين اگر برنامه‌ي شما به صورت پويا پوشه‌هايي را ايجاد يا حذف مي‌كند بايد منتظر ري استارت‌هاي پي در پي باشيد (البته اين مورد با از كار انداختن FileChangesMonitor مربوط به HttpRuntime قابل حل مي‌باشد ، ولي همانطور كه عنوان شد به صورت پيش فرض همواره فعال است)

- فراخواني متد System.Web.HttpRuntime.UnloadAppDomain شبيه به همان Application.Exit در برنامه‌هاي دسكتاپ است و بلافاصله سبب خاتمه‌ي برنامه مي‌شود. قرار دادن فايل App_Offline.htm در پوشه اصلي برنامه نيز چنين رفتاري را سبب خواهد شد. علاوه بر آن تگ httpRuntime در وب كانفيگ نيز داراي گزينه‌ي enable است و تنظيم آن به false ، سبب خاتمه‌ي سرويس دهي برنامه خواهد شد.

- رسيدن به عدد numRecompilesBeforeAppRestart تعريف شده در فايل machine.config كه عموما به عدد 15 تنظيم شده است. اگر تغييرات زيادي را در فايل‌هاي (مرتبط با ASP.NET مانند aspx ، asmx و غيره) برنامه داده باشيد (بيشتر از 15 مورد) و نيازي به ري كامپايل اساسي وجود داشته باشد، ASP.NET FileSystemWatcher به صورت خودكار برنامه را ري استارت خواهد كرد.

منبع: http://www.dotnettips.info

1392/10/5       00000             چه زمان‌هايي يك برنامه‌ي ASP.NET ري استارت مي‌شود؟       مطالب آموزشی , ASP.NET



پایگاه اطلاع رسانی فروش محصولات فرهنگی , پایگاه اطلاع رسانی ArcObject.ir , پایگاه اطلاع رسانی روندها Trand.ir , پایگاه اطلاع رسانی انجمن فناوری اطلاعات , پایگاه اطلاع رسانی اخترشناسان ایران , پایگاه اطلاع رسانی مدیریت و دسترسی به آدرسها و لینکهای اینترنتی , پایگاه اطلاع رسانی همیار اس ام اس و پیامک های انبوه , پایگاه اطلاع رسانی آرک مپ ArcMap.ir , پایگاه اطلاع رسانی اطلس ها , پایگاه اطلاع رسانی 42152.ir , پایگاه اطلاع رسانی بهترین گروه و انجمن , پایگاه اطلاع رسانی 88080.ir , پایگاه اطلاع رسانی شهید شیرودی , پایگاه اطلاع رسانی نرم افزارهای جغرافیایی , پایگاه اطلاع رسانی ابزارهای فناوری اطلاعات , پایگاه اطلاع رسانی پرهام حیدرنیا , پایگاه اطلاع رسانی با فرهنگ
موسسه توسعه روانشناسى و مشاوره سايدا , , وبلاگ گروه فنی مهندسی پرهاست , , موسسه توسعه روانشناسى و مشاوره سايدا , , آموزش هنرهای دوزندگی و چهل تکه دوزی با شادی در شادی دوز با مدیریت مهین حیدرنیا ShadiDooz.ir , , وبلاگ پرهاست , , گروه فنی مهندسی پرهاست
Copyright © 2002-2018, hamyaarsms.ir. Design and Hosting by ParHost All Rights Reserved.
4703