web-dev-qa-db-ja.com

Asp.netコア2.1 UseHttpsRedirectionがIISで機能しない

私はasp.netコア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();
    }
9
Charlie

私のstartup.csで私はこの設定を行いました

public void ConfigureServices(IServiceCollection services)
{
    try
    {
        //..other codes

        services.AddHttpsRedirection(options =>
        {
            options.HttpsPort = 443;
        });
    }
    catch (Exception ex)
    {
        string innerMessage = "";
        if (ex.InnerException != null)
            innerMessage = ex.InnerException.Message;

        Log.Logger.Error("ConfigureServices Message: " + ex.Message + " inner Message:" + innerMessage + "Env.Name:" + _env.EnvironmentName);
    }
}

そしてConfigureメソッドでは、私はこのように使用しました

        app.UseHttpsRedirection();

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
            app.UseHsts();
        }
0
Hamit YILDIRIM