IIS 解決asp.net 網站第一次訪問過慢的解決方案


一、調整應用程序池

  (1)將應用程序池高級屬性中的啟動模式更改為”AlwaysRunning”

  (2)將應用程序池高級屬性中的回收固定間隔時間更改為0,取消固定間隔時間回收

  (3)將應用程序池高級屬性中的特定時間回收,設置為訪問量較少的時間

  (4)將應用程序池高級屬性中的閑置超時更改為0

二、在.net項目中創建一個類,用於項目初始話后自動請求網站  

namespace CMS.Web
{
    public class ApplicationPreload : System.Web.Hosting.IProcessHostPreloadClient
    {
        public void Preload(string[] parameters)
        {
            try
            {
                //自動請求的url,其中http://localhost:8001 最好配置在config中,這邊只是演示。
                string url = Common.ConfigHelper.GetConfigString("host");
                using (var webClient = new WebClient())
                {
                    webClient.DownloadStringCompleted += WebClient_DownloadStringCompleted;
                    webClient.Encoding = Encoding.UTF8;
                    webClient.DownloadStringAsync(new Uri(url));//要異步請求   
                    
                }
            }
            catch (Exception e)
            {
                LogHelper.logHelper.ErrorLog(e.Message, e.StackTrace);
            } 
        } 

        private void WebClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
           
                LogHelper.logHelper.InfoLog(DateTime.Now.ToString(),e.Result) ; 
        }
    }
}

第三步、修改iis配置文件

  (1)添加serviceAutoStartProviders:name可隨意定義,type為”第二步創建的類的全類名,命名空間“,全類名與命名空間用逗號隔開

  (2)修改sites:選中要修改的站點,將preloadEnabled 和serviceAutoStartEnabled修改為true,將上一步創建的name添加到serviceAutoStartProvider中。保存即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM