You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core中HttpClient遇「目标机器主动拒绝连接」错误求助

排查连接被拒绝问题的解决方案

可能的原因及排查步骤

  • 检查应用网络环境
    确认运行ASP.NET Core应用的机器和Postman所在机器是否为同一设备。若不是,先测试应用所在机器能否ping通192.168.10.25,再用telnet 192.168.10.25 端口号(比如目标接口用80端口就填80)验证端口连通性。部分场景下,应用可能被防火墙、内网策略或VPN限制了访问权限,而Postman所在机器的网络配置不受此限制。

  • 核对请求地址与参数
    逐行对比代码中的请求URL和Postman里的实际请求:
    代码拼接后的地址是http://192.168.10.25/api/getToken/getitss?username=Ahmad&password=ahmad@123,需确认Postman的路径、参数(包括大小写、特殊字符)完全一致。另外,BaseAddress末尾带/、请求路径开头无/的拼接逻辑是正确的,但要再次确认目标接口的实际路径是否为api/getToken/getitss。

  • 调整HttpClient调用方式
    代码中使用.Result同步阻塞调用虽不会直接导致连接拒绝,但可能引发线程池或死锁问题,建议改为异步调用尝试:

    // 在异步方法内执行
    using HttpClient client = new HttpClient();
    client.Timeout = TimeSpan.FromMinutes(30);
    client.BaseAddress = new Uri("http://192.168.10.25/");
    HttpResponseMessage getTokenresponse = await client.GetAsync("api/getToken/getitss?username=Ahmad&password=ahmad@123");
    getTokenresponse.EnsureSuccessStatusCode(); // 先验证请求状态
    string content = await getTokenresponse.Content.ReadAsStringAsync();
    string token = content.Replace(@"\""", "").Replace(@"\\", "");
    

    另外,HttpClient应尽量复用而非每次实例化,但这并非当前连接问题的直接诱因,属于优化项。

  • 检查目标服务监听配置
    确认目标服务http://192.168.10.25的绑定地址是否为0.0.0.0(允许所有IP访问),若服务仅绑定localhost或特定网卡,则仅能从本机或指定机器访问。可查看目标服务的启动日志或配置文件,确认监听地址设置。

  • 排查代理服务器影响
    Postman可能配置了代理,而ASP.NET Core应用未配置,或反之。可在HttpClient中显式禁用代理测试:

    var handler = new HttpClientHandler
    {
        UseProxy = false,
        Proxy = null
    };
    using HttpClient client = new HttpClient(handler);
    // 后续请求逻辑不变
    
  • 确认目标服务状态
    虽Postman能正常访问,但仍需确认调试期间目标服务未重启、端口未被其他进程占用。可重新用Postman调用一次,验证服务可用性。


内容的提问来源于stack exchange,提问作者abdul wahid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 16:05:39