NiA*_*iAu 5 api rest http-status-code-307 asp.net-core-3.1
将我的 .NET Core 2.2 API 升级到 .NET Core 3.1 时,需要进行大量更改。我不得不更新 Swashbuckle 包并更改启动文件。我现在使用 Swagger 在开发中运行它。
一旦发布到在 IIS 上运行的 Windows 2012 服务器,每个 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();
});
Run Code Online (Sandbox Code Playgroud)
有没有人知道为什么我得到这个重定向状态?
在 Postman 中运行它时,它在请求测试服务器时总是返回 307。调用localhost的时候就OK了!
Ali*_*eit 10
如果您使用的是 HTTP,请检查您是否有这行代码Startup.cs并注释掉:
// app.UseHttpsRedirection();
Run Code Online (Sandbox Code Playgroud)
它基本上是一个从 HTTP 重定向到 HTTPS 的中间件。如果您将使用 HTTPS,您可以在生产中添加它。
小智 1
我今天遇到了类似的问题(请求得到307重定向),结果是https,以及IIS中的SNI映射。
查看是否可以通过 http:// 访问您的网站
如果这可以工作,但不适用于 https:// 那么你的问题很可能不是你的代码,而是 IIS 的某些设置。
| 归档时间: |
|
| 查看次数: |
3890 次 |
| 最近记录: |