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

请删除 ' 标记 - 堆栈溢出使用“#”标记作为粗体......我认为它也应该在 C# 中编译。

于 2012-11-13T06:55:00.773 回答