我正在处理 .net core Web 应用程序代码挑战,但收到以下错误:
处理请求时发生未处理的异常。 SocketException:无法建立连接,因为目标 机器主动拒绝了。 System.Net.Http.ConnectHelper.ConnectAsync(字符串主机,int端口, CancellationToken(取消令牌)
代码位于 此存储库
此方法发生错误:
public async Task<TeamDTO> AddTeam(string teamName)
{
var client = _httpClientFactory.CreateClient();
client.BaseAddress = new Uri(_baseUri);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var team = new TeamDTO { Name = teamName };
var response = await client.PostAsync("teams", new StringContent(JsonSerializer.Serialize(team), Encoding.UTF8, "application/json"));
response.EnsureSuccessStatusCode();
var responseBody = await response.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize<TeamDTO>(responseBody, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
}
在这行代码上:
var response = await client.PostAsync("teams", new StringContent(JsonSerializer.Serialize(team), Encoding.UTF8, "application/json"));
我正在尝试连接到此 API 方法:
[HttpPost("Post")]
public virtual ActionResult<GameDTO> Post(GameDTO gameDTO)
{
var game = new Game
{
HomeTeamId = gameDTO.HomeTeamId,
AwayTeamId = gameDTO.AwayTeamId,
Date = gameDTO.Date,
WinningTeamId = gameDTO.WinningTeamId
};
game.Id = Repository.Insert(game);
return Ok(gameDTO);
}
我在 Windows 11 专业版上运行 VS 2022。我正在使用 IIS Express 并从同一 VS 2022 解决方案启动这两个应用程序。 我已经彻底测试了 API 代码(有单元测试)并且它可以工作。 API 和 Web 应用程序均启动。 一切正常,直到我在网络应用程序的游戏视图中单击“添加团队”,然后点击上面显示的代码等。我相信这是一个配置问题。
我正在使用 IIS Express 并从同一个启动两个应用程序 VS 2022 解决方案。我已经彻底测试了(有单元测试) API 代码并且它可以工作。 API 和 Web 应用程序均启动
你说你使用的是IIS Express,但是httpclient的基本uri端口是kestrel的默认端口;
"ApiSettings": { "BaseUri": "localhost:5000" },
_baseUri = configuration["ApiSettings:BaseUri"];
修改5000为你的api项目的端口