كيفية إعادة تشغيل asp.net التطبيق بالإضافة إلى تعديل شبكة الإنترنت.التكوين

StackOverflow https://stackoverflow.com/questions/407713

  •  03-07-2019
  •  | 
  •  

سؤال

هل هناك وسيلة الموصى بها لترتد إلى أحد asp.net إلى جانب تطبيق الويب لمس.التكوين من داخل التطبيق ؟ هو HttpRuntime.UnloadAppDomain();الطريقة المفضلة للقيام بذلك ؟ وإذا كان الأمر كذلك أين أنت من فعل هذا ؟ في تفريغ صفحة أخرى أو مكان آخر في التطبيق ؟

هل كانت مفيدة؟

المحلول

وإذا كان هذا هو NET 2.0 أو أكثر، ثم يمكنك إضافة في ملف "App_offline.htm"، تقديم طلب إلى الملقم، إزالته، ومن ثم جعل طلب آخر إلى الملقم.

وهذا التسلسل من الأحداث سيجبر ASP.NET لتفريغ تطبيق لطالما كان الملف موجودا app_offline.htm في المجلد.

وسكوت غوثري دخول بلوق على ذلك: http://weblogs.asp.net/scottgu/archive/2005 /10/06/426755.aspx

نصائح أخرى

الملف web.config لمس من داخل التطبيق هو فكرة سيئة، IMO. أيضا، فإن فكرة وجود الملف الذي قمت بتعديل هو القليل من هاكني، IMO.

والوثائق ينص تحديدا على أن UnloadAppDomain سوف تغلق تطبيق أسفل:

<اقتباس فقرة>   

وUnloadAppDomain يسمح اغلاق برنامجي من التطبيقات غير المستخدمة.

ويجب أن تكون قادرة على إجراء هذه المكالمة في أي مكان في التطبيق. فتذكروا، قد تحصل على SecurityException ، وجعل ذلك من أن وقت يمنحك الأذونات المناسبة (قد ترغب في وضع هذا في مكتبة وإجراء مكالمة ثم قم بتعيين المكتبة حتى في GAC مع الأدلة لإعطائها الثقة الكاملة).

وهذا العمل متاحة بالنسبة لي. مجرد دعوة لتحميل التطبيق.

System.Web.HttpRuntime.UnloadAppDomain();

اقرأ المزيد

<اقتباس فقرة>   

وهذه الطريقة سوف مجرد تفريغ طلبنا. إذا كنت وضعت للتو هذا الأسلوب في زر على شبكة الإنترنت ASP.NET الانتهاء تماما. حتى متى إعادة تحميل التطبيق لدينا؟ في الواقع إذا قمت بالنقر فوق الزر الخاص بك سيكون أول إطلاق لدينا وسيلة وتفريغ التطبيق. وعلاوة على ذلك على صفحة الويب أننا نسير على في تلك اللحظة سوف يتم إعادة شحنها وكذلك، لأننا مجرد النقر على زر وصفحة على شبكة الإنترنت يجب تحديث. بعد إطلاق لدينا وسيلة عملية تحديث الصفحة سيتسبب تطبيقنا لإعادة تحميل أيضا.

ويمكنك إيقاف وبدء تجمع التطبيقات المرتبطة مع التطبيق أيضا.

يمكنك القيام بذلك عن طريق استدعاء HttpRuntime.ShutdownAppDomain الطريقة (سوف تحتاج إلى استخدام التفكير إلى الاحتجاج بها ، لأنه هو أسلوب ثابت)

انظر كيفية إعادة تشغيل IIS عامل عملية برمجيا (أيإيقاف التشغيل الحالي ASP.NET المجال) للحصول على مثال عن كيفية استخدام هذه الطريقة في "إعادة تشغيل" REST API

هل يمكن إعادة بأمان تطبيق ويب عن طريق إنشاء أو إعادة تسمية مجلد في وقت التشغيل تحت الدليل التطبيق. من الواضح أنك تحتاج إلى إعطاء المستخدم المخصصة لتشغيل التطبيق "تعديل" الحقوق إلى دليل على الشبكة أو إلى دليل فرعي تحته.

ويذكر طريقة في http://www.bartlannoeye.be/ بلوق / إعادة تشغيل واحد في صافي على شبكة الانترنت على تطبيق دون-استئناف-IIS

ولقد استخدمت البرمجية التالية للقيام بذلك في حالتي. تعديله للعمل على "للكتابة" دليل فرعي

protected void RestartButton_Click(object sender, EventArgs e)
{
    //restart web app (instead of iisreset)
    DirectoryInfo dir = new DirectoryInfo(Server.MapPath("restart"));
    if (dir.Exists)
    {
        Directory.Move(dir.FullName, dir.FullName + "ed");
    }
    else
    {
        DirectoryInfo dired = new DirectoryInfo(Server.MapPath("restarted"));
        if (dired.Exists)
        {
            Directory.Move(dired.FullName, dir.FullName);
        }
        else
        {
            Directory.CreateDirectory(dir.FullName);
        }
    }
}

إذا كنت لا ترغب في إيقاف وبدء تجمع التطبيق الذي يمكن إعادة تدويرها دائما.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top