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

Unity中使用Azure.Data.Tables无法初始化TableClient/TableServiceClient

问题根因

报错由Unity运行环境的局限性导致:Unity内置的System.Net.Http.HttpClientHandler未实现MaxConnectionsPerServer属性,而Azure.Core库初始化默认HTTP传输管道时会调用该属性,因此触发NotImplementedException,该问题和你选择的认证方式无关。

可落地解决方案

  • 方案1:自定义HTTP传输实现,绕过SDK默认的初始化逻辑
    自定义继承自HttpClientTransport的传输类,直接传入自行构造的HttpClient,规避SDK内部对MaxConnectionsPerServer的调用:
    using System.Net.Http;
    using Azure.Core.Pipeline;
    
    public class CustomUnityHttpTransport : HttpClientTransport
    {
        public CustomUnityHttpTransport() : base(new HttpClient(new HttpClientHandler()))
        {
            // 直接传入手动构造的HttpClient,不走SDK默认的CreateDefaultClient逻辑
        }
    }
    
    初始化客户端时传入配置了自定义传输的TableClientOptions即可:
    var tableOptions = new TableClientOptions();
    tableOptions.Transport = new CustomUnityHttpTransport();
    
    // 初始化TableClient
    var client = new TableClient(connectionString, tableName, tableOptions);
    // 初始化TableServiceClient同理
    var serviceClient = new TableServiceClient(connectionString, tableOptions);
    
  • 方案2:调整Unity项目配置
    如果你使用的是Unity 2021.3及以上版本,可以通过修改运行配置适配SDK:
    1. 打开Edit > Project Settings > Player
    2. 进入Other Settings > Configuration面板
    3. 将Api Compatibility Level修改为.NET 6
    4. 将Http Implementation修改为Managed HttpClient
      重新打包运行即可解决该问题。
  • 方案3:降级SDK版本
    如果上述方案都不适用,可以降级使用旧版Azure存储表服务SDK WindowsAzure.Storage 9.3.3版本,该版本兼容Unity旧版运行环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 13:00:01