代码之家  ›  专栏  ›  技术社区  ›  Andrew Bullock

如何获取ASP.NET来自代码的主机环境

  •  2
  • Andrew Bullock  · 技术社区  · 14 年前

    我可以得到什么详细的进程托管我的ASP.NET代码(即卡西尼号、IIS等)?

    我知道 System.Environment 但对于网络应用来说,这并不是信息量太大。

    还有别的吗?

    谢谢

    2 回复  |  直到 14 年前
        1
  •  1
  •   stombeur    14 年前

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

        2
  •  4
  •   Andreas Paulsson    14 年前

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

    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.
    {
        ...
    }