我正在使用以下代码来清理我的 Azure 应用程序的数据库。
protected void Application_End(object sender, EventArgs e)
{
core.cleanUpDB();
}
我可以在调试时阻止它在我的本地机器上执行吗?我只想在已部署的 Azure 应用程序上执行此操作。
提前致谢。
您可以使用HttpRequest.IsLocal来区分本地和服务器请求。
protected void Application_End(object sender, EventArgs e)
{
if(!System.Web.HttpContext.Current.Request.IsLocal)
core.cleanUpDB();
}
虽然其他答案可能适用于特定场景,但它们与 Windows Azure 无关。检查您是否在 Windows Azure 中运行而不是在模拟器中运行(假设您有 Web 角色)的唯一方法是这样的:
protected void Application_End(object sender, EventArgs e)
{
if (RoleEnvironment.IsAvailable && !RoleEnvironment.IsEmulated)
core.cleanUpDB();
}
您使用条件编译。MSDN 文章提供了一个更好的解释,我可以在这里的小空间里写。
在 VB.net 你会使用这样的东西:
'#If DEBUG Then
'only do this while debugging...
'#End If
请删除 ' 标记 - 堆栈溢出使用“#”标记作为粗体......我认为它也应该在 C# 中编译。