确定ASP.NET应用程序是否在本地运行
我想知道是否有推荐的方式来确定一个asp应用程序是否在本地运行。 目前,我使用Request对象,并在服务器variables上执行localhost或127.0.0.1的stringsearch,但是这有几个限制。 最大的问题是,当我需要的时候,Request对象并不总是可用的。
请参阅HttpRequest.IsLocal
bool isLocal = HttpContext.Current.Request.IsLocal;
您可以检查Request.IsLocal属性
Request.IsLocal与检查127.0.0.1或:: 1是一样的。 看到这个职位: http : //forums.asp.net/p/1065813/4081335.aspx 。
这对Application_Start有效
if (!HostingEnvironment.IsDevelopmentEnvironment) { GlobalFilters.Filters.Add(new RequireHttpsAttribute()); }
要了解更多关于如何设置IsDevelopmentEnvironment,请看下面的线程。
在ASP.NET中,什么决定了HostingEnvironment.IsDevelopmentEnvironment的价值?
请求并不总是在ASP.NET环境中可用?
HttpContext及其属性Request / Response在服务器开始处理页面时立即初始化。 所以在任何地方你可以在你的页面生命周期中执行c#代码,你应该能够检查请求的URL。
如果HttpContext.Current不为null使用
HttpContext.Current.Request.IsLocal
否则,例如在App_Start或HttpContext.Current可用之前,您可以testing
HostingEnvironment.ApplicationPhysicalPath.StartsWith(@"C:\")
或PC上的专用磁盘。
另一种方法是使用生产中设置的常量编译variables,例如,如果使用Azure和visualstudio.com。
这是肮脏的,但它的作品。