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

.NET 4.6.2控制台可连D365,SSIS脚本任务相同代码失败

SSIS脚本任务中CrmServiceClient初始化失败问题

问题现象

在SQL Server 2016目标版本的SSIS脚本任务(VSTA项目目标框架设为4.6.2)中,创建Microsoft.Xrm.Tooling.Connector.CrmServiceClient对象后出现异常:

  • IsReady属性返回false
  • 访问CurrentAccessToken属性抛出System.NullReferenceException异常
  • 执行数据查询代码时,因缺少令牌触发空引用异常:
var query = new QueryExpression("account");
var results = client.RetrieveMultiple(query);

完全相同的代码、一致的实例URI、客户端ID和客户端密钥,在.NET 4.6.2控制台应用中可正常运行。

环境差异

控制台应用可通过NuGet管理依赖包,而SSIS的VSTA环境只能手动添加引用(已尝试添加控制台项目生成的DLL,但问题未解决)。

已尝试的解决方案

  • 暂未使用推荐的Microsoft.PowerPlatform.Dataverse.Client,因其依赖过多在VSTA中引发更多问题
  • 添加代码ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;,无效果
  • 参考Web应用类似问题的解决方案,但不适用当前场景

代码示例

控制台应用代码

using Microsoft.Xrm.Sdk;
using System;

namespace D365Test
{
   internal class Program
   {
      private static void Main(string[] args)
      {
         Microsoft.Xrm.Tooling.Connector.CrmServiceClient client = new Microsoft.Xrm.Tooling.Connector.CrmServiceClient
         (
            new Uri(@"https://MyOrg.crm6.dynamics.com"),
            @"myClientId",
            @"myClientSecret",
            false,
            null
         );
      }
   }
}

SSIS脚本代码

public override void CreateNewOutputRows()
{
    Microsoft.Xrm.Tooling.Connector.CrmServiceClient client = new Microsoft.Xrm.Tooling.Connector.CrmServiceClient
    (
        new Uri(@"https://MyOrg.crm6.dynamics.com"),
        @"myClientId",
        @"myClientSecret",
        false,
        null
    );
    // ...
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:00:32