簡體   English   中英

.NET 核心 3.1 API - 307 臨時重定向

[英].NET Core 3.1 API - 307 Temporary Redirect

在將我的 .NET Core 2.2 API 升級到 .NET Core 3.1 時,需要進行大量更改。 我不得不更新 Swashbuckle package 並更改啟動文件。 我現在用 Swagger 讓它在 dev 中運行。

一旦發布到 Windows 2012 服務器,在 IIS 上運行,每個 API 調用都會返回 307 臨時重定向。

在啟動中,我必須刪除 UseMvc 並添加 UseEndpoints

if (env.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}
else
{
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

if (!env.IsProduction())
{
    app.UseSwagger();
    app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "Digital Signatures V1"); });
}

app.UseMiddleware<LogContextMiddleware>();

app.UseMiddleware<CustomExceptionMiddleware>();

app.UseHttpsRedirection();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();
});

有誰知道我為什么得到這個重定向狀態?

在 Postman 中運行時,請求測試服務器時總是返回 307。 調用localhost的時候就ok了!

如果您使用的是 HTTP,請檢查Startup.cs中是否有這行代碼並注釋掉:

// app.UseHttpsRedirection();

它基本上是一個從 HTTP 重定向到 HTTPS 的中間件。 如果您將使用 HTTPS,您可以在生產中添加它。

我今天遇到了類似的問題(請求重定向 307),結果是 https 和 IIS 中的 SNI 映射。

看看您是否可以使用 http:// 訪問您的網站

它可以工作,但不適用於 https:// 那么是你的問題,很可能不是你的代碼,而是 IIS 的一些設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM