C# 检查代码何时在本地计算机或Global.asax中的EC2上运行

C# 检查代码何时在本地计算机或Global.asax中的EC2上运行,c#,asp.net,global-asax,C#,Asp.net,Global Asax,我想在ASP.NET的global.asax中运行一段代码。我希望此代码仅在localhost上运行,当代码在EC2实例上运行时,我希望它运行另一个代码(当我在Amazon Web Service EC2服务器上部署我的项目时,第二个代码应该运行),如何在不使用调试功能的情况下执行此操作?要检查请求是否来自本地计算机,请执行以下操作: bool isLocal = HttpContext.Current.Request.IsLocal; if(isLocal) { // Do thin

我想在ASP.NET的global.asax中运行一段代码。我希望此代码仅在localhost上运行,当代码在EC2实例上运行时,我希望它运行另一个代码(当我在Amazon Web Service EC2服务器上部署我的项目时,第二个代码应该运行),如何在不使用调试功能的情况下执行此操作?

要检查请求是否来自本地计算机,请执行以下操作:

bool isLocal = HttpContext.Current.Request.IsLocal;

if(isLocal)
{
    // Do things that should only be done when request is local here

}
注意:阅读了解更多信息


我想你可以从以下几个方面选择一些环境变量: 环境变量(ENV类型) EC2\u AMI\u ID EC2_AKI_ID EC2_ARI_ID EC2\u AMI\u清单\u路径 EC2\u布局\u可用性\u区域 EC2_主机名 EC2_实例_ID EC2_实例_类型 EC2_本地_主机名 EC2_公共_主机名 EC2_公共_IPV4 EC2\u预订\u ID EC2_安全组 卢比 RS_服务器 略略 RS_系统日志 卢比代币 服务器名称 列表如下:


我认为,检查EC2\u AMI\u ID和EC2\u INSTANCE\u ID的可用性就足以回答您的问题。

如果您使用的是ASP.NET开发服务器(VS 2012及更早版本),请使用以下方法:

public static bool IsDebugWebServer()
{
  if (HttpContext.Current != null && HttpContext.Current.Request != null)
  {
    return HttpContext.Current.Request.ServerVariables["SERVER_SOFTWARE"] == null || HttpContext.Current.Request.ServerVariables["SERVER_SOFTWARE"] == string.Empty;
  }
else
  {
    return false;
  }
}
如果您使用的是本地IIS Express,请使用以下命令:

public static bool IsDebugWebServer()
{
  return String.Compare(Process.GetCurrentProcess().ProcessName, "iisexpress") == 0;
}

谢谢,但我是说别的。检查当前站点运行的机器是否是EC2机器而不是我的笔记本电脑。可能有一个服务器变量要访问,它告诉我们计算机是EC2实例?您在您的开发机器上使用本地IIS express还是旧的Visual Studio开发服务器(cassini)?