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

请求Microsoft OAuth访问令牌时出现连接关闭错误排查

解决RestSharp获取Microsoft SSO Access Token时的连接错误

这个错误通常和TLS版本、证书验证、代理配置或请求参数问题相关,以下是具体排查和修复方向:

  • 强制启用TLS 1.2/1.3
    Microsoft身份服务要求使用TLS 1.2及以上版本,若程序默认使用旧版TLS会触发连接关闭。在请求前添加以下代码:

    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls13;
    
  • 临时禁用证书验证(仅测试环境)
    本地证书存储异常可能导致SSL握手失败,测试时可临时关闭验证(生产环境禁止使用):

    var client = new RestClient("https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token");
    client.RemoteCertificateValidationCallback = (sender, cert, chain, sslPolicyErrors) => true;
    
  • 调整请求超时时间
    超时也可能引发此类错误,适当延长RestClient的超时阈值:

    client.Timeout = 10000; // 设置为10秒
    
  • 核对请求参数准确性
    确保grant_type、client_id、client_secret、code、redirect_uri等参数完全匹配应用注册时的配置,任何参数错误都可能导致服务端提前断开连接。以授权码模式为例,正确的参数配置如下:

    var request = new RestRequest(Method.POST);
    request.AddParameter("grant_type", "authorization_code");
    request.AddParameter("client_id", "你的客户端ID");
    request.AddParameter("client_secret", "你的客户端密钥");
    request.AddParameter("code", "获取到的授权码");
    request.AddParameter("redirect_uri", "注册应用时的回调地址");
    
  • 配置网络代理(若需)
    若网络需通过代理访问外部服务,给RestClient添加代理配置:

    client.Proxy = new WebProxy("http://你的代理地址:端口");
    

内容的提问来源于stack exchange,提问作者Anu Budagumpi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 14:24:53