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

请教:包含ASP.NET Core与Framework项目的Web应用如何发布至现有托管平台?

发布混合ASP.NET Core(含YARP路由)与原有.NET Framework MVC应用的方案

核心思路

你需要将原有.NET Framework 4.8 MVC应用和新ASP.NET Core项目分别部署,确保ASP.NET Core项目的YARP配置能正确转发请求到原有MVC应用的可访问端点。以下是针对常见托管平台的具体步骤:


1. 部署到IIS(主流.NET Framework托管环境)

  • 部署原有MVC应用:按你过往的常规流程发布到IIS站点,建议绑定到仅内部可访问的地址(例如http://localhost:8080或内部域名internal.yourdomain.com),无需对外暴露。
  • 部署ASP.NET Core项目:
    • 执行dotnet publish -c Release生成发布包,或在Visual Studio中右键选择「发布」并指定IIS目标。
    • 在IIS中创建新站点,绑定对外的业务域名(例如yourdomain.com),作为用户访问的唯一入口。
    • 确认Core项目的YARP配置文件中,转发目标指向原有MVC应用的IIS访问地址,同一服务器内优先用localhost/内部IP以减少网络开销。
  • 权限配置:确保Core站点的应用池账户拥有访问原有MVC站点的权限,避免请求被拦截。

2. 部署到Azure App Service

  • 双独立App Service方案:
    • 将原有MVC应用部署到Azure App Service,选择.NET Framework 4.8作为运行时。
    • 将ASP.NET Core项目部署到另一个App Service,选择对应版本的.NET Core(如.NET 7/8)运行时。
    • 在Core项目的YARP配置中,把转发目标设置为MVC App Service的官方域名(例如yourapp-mvc.azurewebsites.net)。
    • 给Core App Service绑定自定义域名,作为对外的统一入口。
  • 多容器部署(进阶):若需要更紧密的整合,可将两个应用打包为Docker容器,通过Azure App Service的多容器功能部署,但要求具备容器化经验。

3. 部署到Linux托管(Nginx/Apache)

  • 原有MVC应用的限制:Linux原生不支持.NET Framework,若必须保留原有应用,建议将其部署在独立Windows服务器,Core项目部署在Linux服务器,通过跨服务器网络转发请求。
  • Core项目部署:
    • 发布为自包含应用:执行dotnet publish -c Release -r linux-x64 --self-contained true,生成无需依赖系统.NET环境的包。
    • 配置Nginx/Apache作为反向代理,指向Core应用的运行端口,同时确保Linux服务器能访问到Windows服务器上MVC应用的地址。

通用注意事项

  • 发布前务必在测试环境验证YARP转发逻辑,确认所有原有控制器路由正常工作。
  • 部署后若出现转发异常,优先检查Core项目的日志(如Serilog、NLog)和原有MVC应用的日志,定位请求是否到达目标端点。
  • 采用渐进式迁移策略:先发布Core项目作为入口,逐步将MVC功能迁移到Blazor,降低一次性全量部署的风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 19:22:57