2

私たちのウェブサイトには非常に奇妙な問題があります。1日で初めてサイトを実行すると(展開後は初めてではありません)、実行速度が非常に遅く、その時点でそのサイトに接続されているボディがない場合でも、ページ(任意のブラウザー)の読み込みに5分かかります。しかし、使い始めてさまざまなページを開くと、魅力のように実行されます。非常に高速(4秒以内)です。つまり、1人または複数のユーザーが接続している場合でも同様です。明確に言えば、サイトがアイドル状態のままである場合、サイトは初めてパフォーマンスが低下しますが、使用を開始すると、通常どおりに実行されます。サイトの構築には以下を使用しています。

  1. MVC 4
  2. ドットネットフレームワーク4.5
  3. データベース:SQLAnywhereとSQL Server 2008(両方のデータベースを使用して問題を解決しようとしましたが、成功しませんでした)
  4. WebAPIモデルを使用するEntityFramework5.0で、jQuery呼び出しを使用してページにデータを表示し、DataTableグリッド(http://www.datatables.net/)に表示しています。
  5. IIS7.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

理想的なタイムアウトを20Mから900Mに増やします(都合に合わせて)。

これがうまくいくことを願っています.....

于 2012-12-05T09:28:11.200 に答える