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

如何在同一端口托管Visual Studio单解决方案中的多个项目

Visual Studio 同一解决方案双项目同端口部署实现方法

两个独立运行的项目进程无法直接绑定完全相同的端口(会触发系统层面的端口占用冲突),必须通过路径分流、请求转发的方式实现同端口访问,开发环境下无需额外部署第三方服务,直接用以下两种方案配置即可:

方案1:YARP反向代理(.NET Core/.NET 5+项目首选,调试体验最优)

  • 选定一个项目作为主入口项目,通过NuGet安装官方反向代理包Microsoft.AspNetCore.ReverseProxy
  • 主项目绑定你需要的目标端口,第二个项目绑定一个本地未占用的临时端口(比如5001)
  • 在主项目的appsettings.json中添加转发规则,把指定路径前缀的请求转发到第二个项目,示例配置:
"ReverseProxy": {
  "Routes": {
    "SecondProject": {
      "ClusterId": "secondCluster",
      "Match": { "Path": "/app2/{**catch-all}" }
    }
  },
  "Clusters": {
    "secondCluster": {
      "Destinations": { "Local": { "Address": "https://localhost:5001/" } }
    }
  }
}
  • 主项目Program.cs中注册服务和中间件:先加builder.Services.AddReverseProxy().LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"));,再在请求管道配置段加app.MapReverseProxy();
  • 第二个项目的Program.cs中添加路径基址配置app.UsePathBase("/app2");,避免路由匹配、静态资源加载出错
  • 右键解决方案→「属性」→「启动项目」,选择「多个启动项目」,把两个项目的操作都设为「启动」,保存后F5调试即可,所有外部请求都走主项目绑定的目标端口,通过/app2前缀分流到第二个项目。

方案2:IIS Express虚拟目录配置(兼容全版本.NET Framework/.NET项目)

如果用IIS Express作为开发服务器,可以直接修改站点配置实现:

  • 先把主项目的启动方式设为IIS Express,绑定你需要的目标端口
  • 打开解决方案根目录下的隐藏文件夹.vs,找到config/applicationhost.config配置文件
  • 在文件内的<sites>节点下定位到主项目对应的站点配置,在根路径应用<application path="/">的同级位置,添加第二个项目的虚拟应用节点:
<application path="/app2" applicationPool="Clr4IntegratedAppPool">
  <virtualDirectory path="/" physicalPath="你本地第二个项目的根目录绝对路径" />
</application>
  • 保存配置后重启VS,启动IIS Express调试,即可通过同端口下的/app2路径访问第二个项目内容。

注意:不存在两个独立进程同时绑定同端口、同根路径的可能,这是操作系统端口分配规则决定的。如果要实现完全无路径前缀的同端口访问,只能把两个项目的逻辑合并到同一个托管进程中运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:51:45