我正在构建 ASP.NET 8 Web API。 当我第一次运行Postman时,我收到以下错误:
GET https://localhost:5001/home
Error: connect ECONNREFUSED 127.0.0.1:5001
Request Headers
User-Agent: PostmanRuntime/7.39.0
Accept: */*
Cache-Control: no-cache
Postman-Token: 173f13c0-5d2f-4fe0-9d75-df150fcc3fbf
Host: localhost:5001
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
来自以下API方法:
namespace API.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class HomeController : ControllerBase
{
public string Index()
{
return "Hello API!";
}
}
}
非常简单。 这个错误让我感到困惑。我检查了所有常见的罪魁祸首,HTTPS,代理等,什么也没有。
我注意到我刚刚创建的项目中缺少 WeatherForecast 示例控制器和代码。 因此,我决定查看 Program.cs 看看里面有什么。 这是我发现的:
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
var summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
app.MapGet("/weatherforecast", () =>
{
var forecast = Enumerable.Range(1, 5).Select(index =>
new WeatherForecast
(
DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
Random.Shared.Next(-20, 55),
summaries[Random.Shared.Next(summaries.Length)]
))
.ToArray();
return forecast;
})
.WithName("GetWeatherForecast")
.WithOpenApi();
app.Run();
record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary)
{
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
}
放入 Program.cs 中的奇怪代码它一定是 .NET 8 中的新内容。所以我删除了所有不需要的代码并得到了这个:
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
//app.UseSwagger();
//app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.Run();
现在我的简单小控制器可以工作了! 我希望这可以帮助遇到同样问题的人。