2

我们的网站有非常奇怪的问题。当我们在一天中第一次运行我们的站点时(这不是部署后的第一次),它运行速度非常慢,并且需要 5 分钟才能加载页面(任何浏览器),即使当时没有任何人连接到该站点。但是,一旦我们开始使用它,打开各种页面,它就会像魅力一样运行——我的意思是说非常快(不超过 4 秒),即使单个或多个用户连接到它。明确地说,如果站点保持空闲状态,则站点第一次表现不佳,但一旦我们开始使用它,它就会正常运行。我们正在使用以下内容来构建网站:

  1. MVC 4
  2. 点网框架 4.5
  3. 数据库:SQLAnywhere 和 SQL Server 2008(我们尝试使用这两个数据库来解决问题,但没有成功)
  4. Entity Framework 5.0 使用 Web API 模型,我们使用 jQuery 调用在页面上显示数据并在 DataTable 网格上显示它们 (http://www.datatables.net/)
  5. 托管在 IIS 7.5 上

注意:该站点几天前运行正常,但我们不知道在最近几次部署中出了什么问题(代码或托管设置等),但运行速度非常慢。我们已经尝试了一切,但现在我们需要您的专家指导。

提前谢谢了。

我在 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");
            }
        }
    }
}
4

1 回答 1

0

将您的 IDEAL TIMEOUT 20 M 增加到 900 M(根据您的方便)....

我希望这有效......

于 2012-12-05T09:28:11.200 回答