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

使用TMDbLib 1.9.2调用TMDB API遇连接异常及配置错误求助

问题

使用TMDbLib 1.9.2(此前因报错升级至此版本)获取电视剧集信息,之前一直正常运行,目前部分功能仍可用且已确认API Key有效。

  • 创建TMDbClient实例时,client.Config抛出System.InvalidOperationException但未触发异常;
  • 调用var NewEpisode = client.GetTvEpisodeAsync(TMDBid, SeasonNumber, Epnum).Result;时出现嵌套异常:
Inner Exception 1:
HttpRequestException: An error occurred while sending the request.

Inner Exception 2:
WebException: The underlying connection was closed: An unexpected error occurred on a receive.

Inner Exception 3:
IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.

Inner Exception 4:
SocketException: An existing connection was forcibly closed by the remote host

网络速度正常,请问这些问题是否相关?该如何解决?

解决方案

问题关联性判断

这两个问题大概率相关。client.Config的异常说明初始化阶段就存在配置或网络层面的隐性问题,后续调用GetTvEpisodeAsync时的连接被强制关闭,本质都是TMDbLib与TMDB服务器的通信出现了底层故障。

具体解决步骤

  • 强制启用TLS 1.2+
    TMDB服务器已不再支持旧版TLS协议,TMDbLib 1.9.2默认可能未指定高版本TLS。在创建TMDbClient前添加以下代码:

    System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls13;
    

    这是此类连接被强制关闭问题的最常见原因,即使网络快也会因协议不匹配被服务器拒绝。

  • 避免同步阻塞异步方法
    调用GetTvEpisodeAsync().Result会导致线程阻塞,可能引发死锁或通信异常,建议改用异步await模式:

    var NewEpisode = await client.GetTvEpisodeAsync(TMDBid, SeasonNumber, Epnum);
    

    同步阻塞会打乱TMDbLib内部的HTTP请求调度,加重连接异常概率。

  • 清理并重新初始化TMDbClient
    client.Config的异常说明实例初始化不完整,建议销毁现有实例,重新创建并主动加载配置:

    var client = new TMDbClient("你的API Key");
    // 主动加载配置,避免延迟初始化的隐性问题
    await client.GetConfigAsync();
    

    主动调用GetConfigAsync可提前暴露初始化阶段的问题,而非隐性抛出异常。

  • 检查本地防火墙/代理设置
    即使网络快,本地防火墙、杀毒软件或代理可能拦截TMDbLib的HTTPS请求,导致连接被强制关闭。可临时关闭相关软件测试,或把程序加入防火墙白名单。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:20:42