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

.NET Framework 4.7创建SmsClient遇TypeLoadException问题求助

针对.NET Framework 4.7下SmsClient初始化错误的解决方案

以下是几个经过验证的可行方案,按优先级排序:

  • 显式指定HttpClientHandler替代SocketsHttpHandler
    .NET Framework 4.7并未内置System.Net.Http.SocketsHttpHandler,而Azure SDK默认会尝试加载该类型。你可以手动创建使用传统HttpClientHandler的HttpClient,再传给SmsClient的配置:

    var httpClient = new HttpClient(new HttpClientHandler());
    var transport = new Azure.Core.Pipeline.HttpClientTransport(httpClient);
    var smsOptions = new Azure.Communication.Sms.SmsClientOptions
    {
        Transport = transport
    };
    var smsClient = new Azure.Communication.Sms.SmsClient(connectionString, smsOptions);
    
  • 升级.NET Framework到4.7.2或更高版本
    SocketsHttpHandler是在.NET Framework 4.7.2中正式加入System.Net.Http程序集的,升级框架版本后,Azure SDK可以正常加载该类型,无需额外代码修改,这是最彻底的解决方式。

  • 安装System.Net.Http NuGet包并修正绑定重定向
    如果无法升级框架,安装兼容.NET Framework 4.7的最新版System.Net.Http NuGet包,然后在app.config/web.config中确保绑定重定向配置正确(替换版本号为你安装的实际版本):

    <configuration>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    

    注意:安装NuGet包后,Visual Studio通常会自动生成重定向,但如果未生成,需要手动添加并确认版本匹配。

  • 检查项目目标框架与引用一致性
    确认项目的目标框架确实设置为.NET Framework 4.7,避免误设为更低版本。同时检查项目引用中的System.Net.Http,确保没有同时引用NuGet包和框架自带的程序集(两者冲突会导致加载异常)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:20:39