2012-12-05 73 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。顺便说一句,您可以将“启动模式”设置为“始终运行”,以避免重新启动应用程序时发生冷负载。 –