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

如何在IIS中将.NET Core网站部署为.NET Framework网站下的应用程序

解决.NET Core子应用部署在.NET Framework网站下的连接/重定向问题
  • 检查IIS应用程序池配置
    确保.NET Core子应用的应用程序池设置为No Managed Code——.NET Core不依赖.NET Framework的CLR,必须和父站点的.NET Framework应用池(如v4.0)完全隔离,不能共用。同时要保证子应用池的身份权限足够访问其文件目录,权限不足会直接导致连接重置。

  • 修正.NET Core应用的路径与重定向配置

    1. 适配子应用路由前缀:在Program.cs中设置基础路径,比如子应用虚拟路径为/CoreApp,添加以下代码:
      var app = builder.Build();
      app.UsePathBase("/CoreApp");
      
    2. 禁用不必要的HTTPS重定向:如果父站点已经处理了HTTPS,子应用要关闭自动HTTPS重定向,避免循环重定向。可以注释掉app.UseHttpsRedirection();,或者在appsettings.json中配置:
      "HttpsRedirection": {
        "Enabled": false
      }
      
  • 排查URL重写规则冲突
    父站点的URL重写规则可能干扰子应用,需要在父站点的web.config重写规则中排除子应用路径,示例:

    <rule name="父站点重写规则" stopProcessing="true">
      <match url=".*" />
      <conditions>
        <add input="{REQUEST_URI}" pattern="^/CoreApp/" negate="true" />
      </conditions>
      <!-- 原有规则内容 -->
    </rule>
    

    同时确认子应用自动生成的web.config中的重写规则仅作用于自身路径,避免和父站点规则冲突。

  • 验证IIS子应用配置
    在IIS中添加子应用时,确保虚拟路径和预期结构一致,物理路径指向.NET Core应用的发布目录。检查“连接为”设置,使用拥有物理路径访问权限的身份,不要盲目继承父站点的身份配置。

  • 查看日志定位细节

    1. 启用.NET Core应用的Debug级日志,在appsettings.json中调整日志配置:
      "Logging": {
        "LogLevel": {
          "Default": "Debug",
          "Microsoft.AspNetCore": "Debug"
        }
      }
      
    2. 查看IIS日志文件(默认路径C:\inetpub\logs\LogFiles),找到对应请求的状态码和错误详情,比如302状态码对应重定向循环,500状态码对应服务器内部错误,帮助精准定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:55:23