乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      IIS C# code

       zww_blog 2014-05-23

      C# code

       

      //添加應(yīng)用程序池空間引用

      using System.DirectoryServices;

      using System.Text;

      using System.Text.RegularExpressions;

      using System.Diagnostics;

      using System.Management;

       

      private void button6_Click(object sender, System.EventArgs e)

        {

         //如果應(yīng)用程序池不存在,則會報錯系統(tǒng)找不到指定路徑

         string AppPoolName=this.textBox1.Text.Trim();

         string method="Start";

       

         try

         {   

            DirectoryEntry appPool = new DirectoryEntry("IIS://localhost/W3SVC/AppPools");

            DirectoryEntry findPool = appPool.Children.Find(AppPoolName,"IIsApplicationPool");

            findPool.Invoke(method,null);

            appPool.CommitChanges();

            appPool.Close();

          MessageBox.Show("應(yīng)用程序池名稱啟動成功","啟動成功");

         }

         catch(Exception ex)

         {

          MessageBox.Show(ex.Message,"啟動失敗");     

         }

       

        }

       

        private void button7_Click(object sender, System.EventArgs e)

        {

         //如果應(yīng)用程序池當(dāng)前狀態(tài)為停止,則會發(fā)生異常報錯

         string AppPoolName=this.textBox1.Text.Trim();

         string method="Recycle";

       

         try

         {   

            DirectoryEntry appPool = new DirectoryEntry("IIS://localhost/W3SVC/AppPools");

            DirectoryEntry findPool = appPool.Children.Find(AppPoolName,"IIsApplicationPool");

            findPool.Invoke(method,null);

            appPool.CommitChanges();

            appPool.Close();

          MessageBox.Show("應(yīng)用程序池名稱回收成功","回收成功");

         }

         catch(Exception ex)

         {

          MessageBox.Show(ex.Message,"回收失敗");     

         } 

        }

       

        private void button8_Click(object sender, System.EventArgs e)

        {

         string AppPoolName=this.textBox1.Text.Trim();

         string method="Stop";

       

         try

         {   

            DirectoryEntry appPool = new DirectoryEntry("IIS://localhost/W3SVC/AppPools");

            DirectoryEntry findPool = appPool.Children.Find(AppPoolName,"IIsApplicationPool");

            findPool.Invoke(method,null);

            appPool.CommitChanges();

            appPool.Close();

          MessageBox.Show("應(yīng)用程序池名稱停止成功","停止成功");

         }

         catch(Exception ex)

         {

          MessageBox.Show(ex.Message,"停止失敗");     

         } 

        }


      ------
      解決方案--------------------
      把程序?qū)?yīng)的IIS應(yīng)用程序池回收一下就好了。

      可是為什么會出現(xiàn)這個原因呢?還有為什么回收一下就好了呢?回收做了些什么?
      出現(xiàn)的原因
      在網(wǎng)上搜索了一翻,發(fā)現(xiàn)主要是一下幾個問題,當(dāng)然還有其他原因
      1
      .Framework的問題,例如1.02.0版本

      2
      aspnet_wp.exe 問題

      3
      )安全更新程序 (KB886903)


      可惜我們服務(wù)器出現(xiàn)的問題都不是以上幾點引起的,經(jīng)過我的分析認(rèn)為是寫的很爛很爛的程序占用了大量的資源最后導(dǎo)致內(nèi)存泄漏,導(dǎo)致IIS的進(jìn)程當(dāng)?shù)袅???上Я顺绦蛭沂菦]辦法改,都是別人寫的,也不會改。不過我不可能每次出現(xiàn)這個問題就登陸到遠(yuǎn)程服務(wù)器上去回收一次吧,所以只有讓他自動回收了。

      自動回收有好幾種方式,也不知道那一種比較適合,而且回收工作進(jìn)程是會把保存在內(nèi)存里的Session清空,造成用戶需要重新登陸的問題,所以自動回收要越少越好,以保證不會因為其中的一個用戶使用了那個很爛的程式導(dǎo)致其他的用戶都要重新登陸。

      如果用了狀態(tài)服務(wù)器或者是把Session保存到了數(shù)據(jù)庫中去的程序自動回收后肯定是沒有任何影響的,請求也不會中斷還是一樣繼續(xù)運行,只是換了個工作進(jìn)程繼續(xù)為客戶端工作,客戶端是感覺不到的,當(dāng)初沒有為了方便沒有把Session保存到數(shù)據(jù)庫真是失策!

      根據(jù)運行時間
      系統(tǒng)默認(rèn)是1740分鐘,也就是29個小時,這個不是很好控制,建議不用,也就是去掉那個勾。

      請求數(shù)目
      這個要看具體的情況了。如果只有10個請求,可是有5個都在請求那個比較占資源的頁面(可能是統(tǒng)計年度報表之類),這個時候就會出現(xiàn)進(jìn)程當(dāng)?shù)舻那闆r,如果請求有1000個可是一個也沒運行比較占資源的頁面,這個時候進(jìn)程肯定是很正常的,所以根據(jù)請求的數(shù)目來決定也不符合實際需要。

      計劃的時間
      這個其實很好,不過具體什么時間回收好呢?通常我們都是設(shè)置上班前和下班后回收,這個時候回收是有必要的,不過針對出現(xiàn)隨時可能出現(xiàn)是高內(nèi)存占用并不是很適用。

      內(nèi)存(虛擬內(nèi)存或已使用的內(nèi)存)
      這個針對出現(xiàn)內(nèi)存問題引起的進(jìn)程當(dāng)?shù)魧嵲谔线m了,不過設(shè)置多大的值比較好是一個很重要的問題,我是根據(jù)每次出現(xiàn)問題時進(jìn)程是實際占用情況決定的。我們的服務(wù)器內(nèi)存是2G,通常其他的一些服務(wù)會占用掉600M,我發(fā)現(xiàn)有每次進(jìn)程都是到1G多的時候當(dāng)?shù)?,所以設(shè)置了最大使用內(nèi)存為1000M的時候自動回收,設(shè)置后一直都沒出現(xiàn)問題了。要查看進(jìn)程的占用直接用windows任務(wù)管理器就好,值不能太小了,否則如果訪問量都很大超過這個值的時候也會自動回收,這個就很沒必要了。一定要多多觀察進(jìn)程的實際占用情況再做決定。
      IIS的配置文件里面如果配置了IIsApplicationPools節(jié)點的LogEventOnRecycle屬性,每次回收的時候IIS的日志文件會根據(jù)LogEventOnRecycle屬性的值紀(jì)錄下相關(guān)的信息,也個也是設(shè)置自動回收時的一個重要參考,不過由于這個日志文件只能看幾個小時以前的紀(jì)錄,當(dāng)前的紀(jì)錄要幾個小時后才寫進(jìn)去,所以看起來不方便,郁悶! 


      現(xiàn)在暫時根據(jù)最大占用內(nèi)存自動收回以前的問題是解決了,暫時也發(fā)現(xiàn)什么新問題了,也不知道其他地方都是怎么設(shè)置的,是不是還有更好的方法呢?希望到了這篇文章的人能提點寶貴意見,大家一起交流一下經(jīng)驗。

       

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多