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

如何配置运行在IIS上的.NET 7 WebAPI?从.NET 3.1迁移配置指引

.NET 7 应用部署 IIS 配置指南

现有代码优化

先梳理下现有代码里可简化的地方,.NET 7 的 WebApplication.CreateBuilder 已经默认处理了很多配置,无需重复编写:

1. 简化初始化逻辑

你手动创建 WebApplicationOptions、获取执行程序集的代码可以直接删掉,WebApplication.CreateBuilder(args) 会自动处理内容根路径、应用名称这些参数,默认逻辑和你写的完全一致。

2. 配置文件加载简化

.NET 7 默认已经加载了 appsettings.json、appsettings.{环境名}.json 和环境变量,所以那段手动调用 SetBasePath、AddJsonFile 的代码可以去掉,只保留 hostsettings.json 的加载即可(如果这个文件是你额外需要的)。

3. 冗余代码清理

代码里重复调用了 builder.Services.AddControllers(),留一次带 AddJsonOptions 的就行,另一次直接删掉。

IIS 部署关键配置

要把.NET 7 应用部署到 IIS,这些核心点必须注意:

  • 安装.NET 7 运行时:服务器上必须安装 ASP.NET Core Runtime 7.0,否则 IIS 无法托管你的应用。
  • 配置应用程序池:新建应用程序池时,.NET CLR 版本选择「无托管代码」——因为 ASP.NET Core 是自托管架构,IIS 仅作为反向代理,不需要加载.NET Framework 的托管代码。
  • 验证 ASP.NET Core 模块:服务器上必须存在 ASP.NET Core Module v2,安装.NET 运行时时会自动部署,也可以通过 IIS 管理器的「模块」功能检查。
  • 发布应用:发布时选「文件夹」目标,部署模式推荐用「框架依赖」,这样发布包体积小,服务器装了对应运行时就能运行;如果要独立部署可选「自包含」,但包体积会大很多。

优化后的完整代码

var builder = WebApplication.CreateBuilder(args);

// 加载额外的hostsettings.json(不需要的话可以删掉)
builder.Configuration.AddJsonFile("hostsettings.json", optional: true, reloadOnChange: true);

// 如果需要把应用作为Windows服务运行,保留这段;纯IIS托管可删掉
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
    builder.Host.UseWindowsService();
}

// CORS配置:生产环境别用AllowAnyOrigin,指定具体域名更安全
builder.Services.AddCors(options =>
{
    options.AddDefaultPolicy(policy =>
    {
        policy.AllowAnyOrigin();
        policy.AllowAnyHeader();
        policy.AllowAnyMethod();
    });
});

// 控制器配置,包含JSON序列化选项
builder.Services.AddControllers()
    .AddJsonOptions(options =>
    {
        options.JsonSerializerOptions.PropertyNamingPolicy = null;
    });

builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddLogger(); // 确保这个自定义扩展方法在.NET 7中兼容

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseCors();
app.MapControllers();

app.Run();

部署步骤快速梳理

  1. 在 Visual Studio 里右键项目选「发布」,目标选「文件夹」,设置好发布路径后完成发布。
  2. 把发布后的所有文件复制到服务器的目标目录。
  3. 打开 IIS 管理器,新建站点:设置站点名称,物理路径指向服务器上的发布目录,绑定好域名/端口。
  4. 将站点的应用程序池切换为你新建的、CLR 版本为「无托管代码」的池。
  5. 访问站点地址,验证是否正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 14:21:31