【问题标题】:Current application pool name当前应用程序池名称
【发布时间】:2014-07-17 19:44:22
【问题描述】:

我正在尝试获取 Web 应用程序的当前应用程序池名称。 我用谷歌搜索了很多,我找到了几种方法,但它们似乎都不适合我 这是我的实现之一:

   private static string GetCurrentApplicationPoolId()
    {
        string virtualDirPath = AppDomain.CurrentDomain.FriendlyName;
        virtualDirPath = virtualDirPath.Substring(4);
        int index = virtualDirPath.Length + 1;
        index = virtualDirPath.LastIndexOf("-", index - 1, index - 1);
        index = virtualDirPath.LastIndexOf("-", index - 1, index - 1);
        virtualDirPath = "IIS://localhost/" + virtualDirPath.Remove(index);
        DirectoryEntry virtualDirEntry = new DirectoryEntry(virtualDirPath);
        return virtualDirEntry.Properties["AppPoolId"].Value.ToString();
    }

我得到一个错误:Unknown error (0x80005000)

【问题讨论】:

  • 哪一行代码导致了这个错误?

标签: c# asp.net security iis application-pool


【解决方案1】:

如果您有HttpContext,请使用:

 HttpContext.Current.Request.ServerVariables["APP_POOL_ID"]

如果不使用这个:

System.Environment.GetEnvironmentVariable(
  "APP_POOL_ID", 
  EnvironmentVariableTarget.Process);

Source

【讨论】:

    【解决方案2】:

    控制面板 - 程序功能 - 关闭 - 寻找 IIS 6 兼容并检查所有内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-25
      • 2010-11-24
      • 1970-01-01
      • 2013-01-01
      • 2022-12-30
      • 1970-01-01
      • 2014-10-01
      • 1970-01-01
      相关资源
      最近更新 更多