如何从代码中获取ASP.NET主机环境的详细信息

时间:2010-09-22 11:53:40

标签: asp.net

我可以获得托管ASP.NET代码的进程(即Cassini,IIS等)的哪些细节?

我知道System.Environment,但它对于网络应用程序没有过多的信息。

还有其他可用的东西吗?

由于

2 个答案:

答案 0 :(得分:4)

如果您只对正在运行的环境感兴趣,可以查看

AppDomain.Current.FriendlyName 

System.Diagnostics.Process.GetCurrentProcess().MainModule.ModuleName

我们在一个项目中有这样的测试:

AppDomain appDomain = AppDomain.CurrentDomain;
if (appDomain.FriendlyName.ToUpper().StartsWith("/LM/W3SVC/") || // IIS
  appDomain.FriendlyName.ToLower().EndsWith(".test.dll") ||       // Support for unit test as long as it ends with .test.dll.
 (System.Diagnostics.Process.GetCurrentProcess().MainModule != null) && System.Diagnostics.Process.GetCurrentProcess().MainModule.ModuleName.Equals("WebDev.WebServer.EXE", StringComparison.CurrentCultureIgnoreCase))     // Support for Cassini.
{
    ...
}

它不漂亮,但它有效。

答案 1 :(得分:1)

你可以从HttpRuntime获得更多信息,但不是所有信息 http://msdn.microsoft.com/en-us/library/system.web.httpruntime_members.aspx