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

.NET Core 2.1中AddHsts()与AddHttpsRedirection()未定义如何解决?

解决.NET Core 2.1中UseHsts和AddHttpsRedirection找不到定义的问题

嘿,我来帮你搞定这个编译错误!你遇到的问题根源在于:.NET Core 2.1中,HSTS和HTTPS重定向的扩展方法并不包含在默认的框架元包里,需要手动添加对应的NuGet包并补充正确的命名空间引用。下面是具体的解决步骤:

1. 安装必要的NuGet包

你需要安装Microsoft.AspNetCore.HttpsPolicy包,这是包含AddHsts、AddHttpsRedirection、UseHsts、UseHttpsRedirection这些扩展方法的官方包。

安装方式二选一:

  • 使用.NET CLI:在项目根目录执行命令:
    dotnet add package Microsoft.AspNetCore.HttpsPolicy --version 2.1.1
    
  • 使用Package Manager Console:在Visual Studio中打开控制台,执行:
    Install-Package Microsoft.AspNetCore.HttpsPolicy -Version 2.1.1
    

注意:版本号请选择与你的.NET Core 2.1 runtime匹配的稳定版本,2.1.1是2.1系列的常用稳定版。

2. 添加正确的命名空间引用

在你的Startup.cs文件顶部,添加以下using指令:

using Microsoft.AspNetCore.HttpsPolicy;

你之前误以为这些方法在Microsoft.AspNetCore.Builder命名空间下,但实际上它们的扩展方法定义在Microsoft.AspNetCore.HttpsPolicy里,所以必须添加这个引用才能让编译器找到它们。

3. 验证代码配置的正确性

确保你的中间件和服务注册的位置符合最佳实践:

在ConfigureServices中的配置:

public void ConfigureServices(IServiceCollection services)
{
    // 其他服务注册代码...
    
    services.AddHsts(options => 
    { 
        options.MaxAge = TimeSpan.FromDays(60); 
    }); 
    services.AddHttpsRedirection(options => 
    { 
        options.RedirectStatusCode = StatusCodes.Status307TemporaryRedirect; 
        options.HttpsPort = 5001; 
    });
    
    // 其他服务注册代码...
}

在Configure中的配置:

重要提示:HSTS不应该在开发环境启用,否则浏览器会缓存强制HTTPS的规则,影响本地调试!

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        // 仅在生产/非开发环境启用HSTS
        app.UseHsts();
    }

    // HTTPS重定向要放在静态文件、路由等中间件之前
    app.UseHttpsRedirection();
    
    app.UseStaticFiles();
    app.UseRouting();
    // 其他中间件(比如授权、端点路由等)...
}

额外说明

在.NET Core 3.0及以后的版本中,Microsoft.AspNetCore.HttpsPolicy已经被包含在默认的框架元包里,不需要手动安装;但2.1作为较早的LTS版本,需要单独引入这个包才能使用HSTS和HTTPS重定向功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 17:47:27