2012-12-05 80 views
2

我們的網站有非常奇怪的問題。當我們在當天第一次運行我們的網站(這不是第一次部署後),它運行速度非常慢,需要5分鐘才能加載頁面(任何瀏覽器),即使此時沒有任何主體連接到該網站。但是,一旦我們開始使用它,打開各種頁面,它就像一個魅力運行 - 非常快(不超過4秒)我的意思是說,即使單個或多個用戶連接到它。明確地說,如果網站保持閒置狀態,網站首次表現糟糕,但一旦我們開始使用網站,它就會正常運行。我們使用以下建立的網站:網站性能奇怪的問題

  1. MVC 4
  2. 點淨框架4.5
  3. 數據庫:SQLAnywhere中和SQL Server 2008(我們試圖同時使用數據庫來解決這個問題,但沒有成功)
  4. 實體框架5.0使用Web API模型,我們正在使用jQuery調用有頁面上的數據並顯示他們
  5. 託管IIS 7.5
DataTable的網格(http://www.datatables.net/)

注意:這個網站在幾天前正常工作,但是我們不知道在最近的幾次部署過程中出了什麼問題(在代碼或主機設置等),但它工作非常緩慢。我們已經嘗試了一切,但現在我們需要您的專家指導。

非常感謝提前。

我在的global.asax.cs代碼:

protected void Application_Start() 
{ 
    AreaRegistration.RegisterAllAreas(); 
    WebApiConfig.Register(GlobalConfiguration.Configuration); 
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
    RouteConfig.RegisterRoutes(RouteTable.Routes); 
    BundleConfig.RegisterBundles(BundleTable.Bundles); 
    //ConfigureApi(GlobalConfiguration.Configuration); 
    GlobalConfiguration.Configuration.Filters.Add(new ModelValidationFilterAttribute()); 
    FilterConfig.RegisterHttpFilters(GlobalConfiguration.Configuration.Filters); 
    BundleTable.EnableOptimizations = true; 
} 
protected void Session_Start(object src, EventArgs e) 
{ 
    SessionHelper.EnterPriceID = 1; 
    SessionHelper.CompanyID = 1; 
    SessionHelper.RoomID = 1; 
    SessionHelper.UserID = 1; 
    SessionHelper.RoomName = "Room1"; 
    SessionHelper.UserName = "Admin"; 
    SessionHelper.CompanyResourceFolder = SessionHelper.EnterPriceID.ToString() + "_" + SessionHelper.CompanyID.ToString(); 
    eTurns.DTO.Resources.ResourceHelper.ResourceDirectoryPath = HttpContext.Current.Server.MapPath(@"\Resources\" + SessionHelper.CompanyResourceFolder) + @"\"; 
    eTurns.DTO.Resources.ResourceHelper.ResourceBaseClassPath = eTurns.DTO.Resources.ResourceHelper.ResourceDirectoryPath.Replace(@"\", "."); 
    System.Globalization.CultureInfo c = new System.Globalization.CultureInfo("en-US"); 
    Thread.CurrentThread.CurrentUICulture = c; 
    Thread.CurrentThread.CurrentCulture = c; 
    Session["CurrentCult"] = c; 
} 

public void Application_AcquireRequestState(object sender, EventArgs e) 
{ 
    if (HttpContext.Current.Session != null && Session["CurrentCult"] != null) 
    { 
     string currentCulture = Convert.ToString(Session["CurrentCult"]); 
     if (String.Compare(currentCulture, System.Threading.Thread.CurrentThread.CurrentCulture.ToString(), StringComparison.OrdinalIgnoreCase) != 0) 
     { 
      Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture; 
      try 
      { 
       System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(currentCulture); 
      } 
      catch 
      { 
       System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-us"); 
      } 
     } 
    } 
} 
+0

發佈您的global.asax.cs代碼.... – Rab

+0

@RabNawaz:謝謝你的啓示。我已經添加了代碼供您參考。 –

+0

對我來說,它似乎是你的游泳池有一個非常短的空閒關機,這是需要重新開始的時間,如果需要任何編譯檢查你的應用程序。 – Aristos

回答

0

增加你的理想TIMEOUT 20男900米(根據您的方便)......

我希望這個作品.. ...

+1

嘗試過這種方式,現在它適用於我們。非常感謝Amit –

+0

如果您不想過期,可以將其設置爲0。順便說一句,您可以將「啓動模式」設置爲「始終運行」,以避免重新啓動應用程序時發生冷負載。 –