我可以获得托管ASP.NET代码的进程(即Cassini,IIS等)的哪些细节?
我知道System.Environment
,但它对于网络应用程序没有过多的信息。
还有其他可用的东西吗?
由于
答案 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