1

このプロジェクトでは、出力キャッシュの属性とweb.configの適切な参照と、うまくいけばglobal.asax(下記)を使用してMVC-3を使用しています。私は共有ホスティングからプロダクションを実行していて、aspnet_regsqlを管理者として実行して適切なオブジェクトを作成することはできません。そのため、AspNet_SqlCacheTablesForChangeNotificationテーブル、SP、トリガーを私の開発者ボックスからデータベースをセットアップするためにコピーしました。SQLServer OutputCacheオブジェクトが削除されているか作成されていません

一般的にすべてうまくいくが、私は約2〜3日ごとにキャッシングデータベースオブジェクトがすべて削除され、アプリの開始時に再作成されないことが分かっている。 (ホスティングコスクリプトはそれらを削除していません)。

サイトを再び稼働させるために、データベースオブジェクトを手動でバックアップしてバックアップします。

オブジェクトを削除したり、自動的に作成したりすることはできません。

Global.asaxの中に私のアプリの起動は次のようになります。

protected void Application_Start() 
{ 
    RegisterGlobalFilters(GlobalFilters.Filters); 

    SqlCacheDependencyAdmin.EnableNotifications(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString); 
    SqlCacheDependencyAdmin.EnableTableForNotifications(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString, "be_Posts"); 
    SqlCacheDependencyAdmin.EnableTableForNotifications(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString, "be_PostTag"); 

    SiteMap.Provider.SiteMapResolve += new SiteMapResolveEventHandler(SiteMapPathExpansionResolver.OnSiteMapResolve); 
    RegisterRoutes(RouteTable.Routes); 
} 

と私のアプリの終了は、次のようになります。

protected void Application_End() 
    { 
     SqlCacheDependencyAdmin.DisableTableForNotifications(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString, "be_Posts"); 
     SqlCacheDependencyAdmin.DisableTableForNotifications(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString, "be_PostTag"); 
     SqlCacheDependencyAdmin.DisableNotifications(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString); 
    } 

のweb.configエントリは次のようになります。

<caching> 
    <sqlCacheDependency enabled="true" pollTime="10000" > 
    <databases> 
     <add name=" db" 
     connectionStringName="ApplicationServices" 
     pollTime="10000" 
     /> 
    </databases> 
    </sqlCacheDependency> 
</caching> 

答えて

0

だから、私は効果的にそれを解消することによってそれを解決しました/無効にApplication_Endから。私はこれが開いているハンドルとSQLサーバーを残して読んだが、私は働いて他のソリューションを見つけられませんでした。作成するトリガーとスタートアップイベントを追加してテーブルなどの再作成を試みましたが、Disablesを削除するだけで動作するように見えました。

私が共有しているDBサーバには問題はありませんが、ホスティング会社は私に不平を言っていないし、そうでないとこのアプローチが合併症を引き起こすかどうかはわかりませんその種の監視にアクセス権を与える。

関連する問題