首页 > 解决方案 > Asp.net core 2.1 UseHttpsRedirection 在 IIS 中不起作用

问题描述

我将我的 asp.net core 2.1 WebApi 部署到 IIS 10。(IIS 充当代理)

我在 IIS 中添加了 SSL 证书,并为不安全端口 (8081) 和安全端口 (8082) 绑定。

但是当我访问http://localhost:8081/api/values时,浏览器只会返回 403 Forbidden ,而不是将我重定向到https://localhost:8082/api/values

我的启动代码如下:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc()
           .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

        services.AddHttpsRedirection(options=>
        {
            options.HttpsPort = 8082;
        });
    }


    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        //app.UseForwardedHeaders();
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseMvc();
    }

标签: c#iisasp.net-core

解决方案


我发现的问题是从 .net core 2.0 到 .net core 2.1 的更改意味着需要在 startup.cs 中明确指定 https 端口

services.AddHttpsRedirection(options =>
    {
        options.HttpsPort = 443;
    });

有关更多信息,请参见此处:https ://github.com/aspnet/AspNetCore/issues/3176


推荐阅读