1

次のコードを使用して、Azure アプリのデータベースをクリーンアップしています。

protected void Application_End(object sender, EventArgs e)
{
     core.cleanUpDB();
}

デバッグ中にローカル マシンでこれが実行されないようにすることはできますか? デプロイされた Azure アプリでのみこれを実行したいだけです。

前もって感謝します。

4

4 に答える 4

5

HttpRequest.IsLocalを使用して、ローカル リクエストとサーバー リクエストを区別できます。

protected void Application_End(object sender, EventArgs e)
{
     if(!System.Web.HttpContext.Current.Request.IsLocal)
           core.cleanUpDB();
}
于 2012-11-13T06:58:27.580 に答える
4

他の回答は特定のシナリオで機能する可能性がありますが、Windows Azure には関係ありません。Windows Azure で実行しており、エミュレーターで実行していないかどうかを確認する唯一の方法 (Web ロールがあると仮定) は、次のようになります。

protected void Application_End(object sender, EventArgs e)
{
    if (RoleEnvironment.IsAvailable && !RoleEnvironment.IsEmulated)
        core.cleanUpDB();
}
于 2012-11-13T07:07:47.340 に答える
1

条件付きコンパイルを使用します。MSDN の記事は、ここの小さなスペースに書き込めるよりもはるかに優れた説明を提供します。

于 2012-11-13T06:55:16.930 に答える
0

VB.net では、次のようなものを使用します。

'#If DEBUG Then
'only do this while debugging...
'#End If

' マークを削除してください - スタック オーバーフローは "#" マークを BOLD として使用します.... C# でもコンパイルする必要があると思います。

于 2012-11-13T06:55:00.773 に答える