私は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();
}
私の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();
}