You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在IIS中托管Web API时如何获取进程真实名称而非w3wp?

解决IIS托管Web API获取真实名称的问题

因为IIS上的Web API是运行在应用池进程w3wp.exe里的,所有同池的应用都会共享这个进程,所以直接拿进程名只能得到w3wp。要获取你的API项目名称或DLL名称,可以用以下几种方法:

  • 获取Web API的DLL名称(无后缀)
    直接读取当前执行程序集的名称,这就是项目编译后生成的DLL文件名(不带.dll后缀):

    using System.Reflection;
    
    var dllName = Assembly.GetExecutingAssembly().GetName().Name;
    
  • 获取ASP.NET Core Web API的项目名称
    如果是ASP.NET Core版本的API,可以通过依赖注入的IWebHostEnvironment对象获取项目名称(默认和你的项目名称一致):

    1. 在控制器或服务的构造函数中注入IWebHostEnvironment:
      private readonly IWebHostEnvironment _env;
      
      public YourController(IWebHostEnvironment env)
      {
          _env = env;
      }
      
    2. 读取项目名称:
      var projectName = _env.ApplicationName;
      
  • 获取传统ASP.NET Framework Web API的项目名称
    对于Framework版本的API,除了用上面的程序集名称方法,还可以通过网站物理路径解析项目名称:

    using System.IO;
    
    // 获取网站根目录路径
    var rootPath = HttpContext.Current.Server.MapPath("~/");
    // 从路径中提取最后一个文件夹名(通常就是项目名称)
    var projectName = Path.GetFileName(Path.GetDirectoryName(rootPath));
    

内容的提问来源于stack exchange,提问作者kosnkov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:50:34