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

部署SSIS包时HtmlAgilityPack抛出调用目标异常问题

解决SSIS中HtmlAgilityPack加载网页时的"Invocation Target"异常

这个问题我碰到过好几次,外层的Exception has been thrown by the target of an invocation.其实只是个包装异常,真正的故障原因藏在InnerException里,咱们一步步来排查和解决:

1. 先捕获并查看内部异常

首先必须拿到内部异常的详细信息,否则根本没法定位问题。修改你的代码,把加载逻辑放到try-catch块里,把内部异常输出到SSIS日志或者调试窗口:

try
{
    // 建议改成HTTPS,目标站会自动重定向
    var html = @"https://sqlserverbuilds.blogspot.com/"; 
    HtmlWeb web = new HtmlWeb(); 
    var htmlDoc = web.Load(html);
}
catch(Exception ex)
{
    // 输出到SSIS错误日志
    var errorDetails = $"外层异常信息:{ex.Message}\n" +
                       $"内部异常信息:{ex.InnerException?.Message}\n" +
                       $"内部异常堆栈:{ex.InnerException?.StackTrace}";
    Dts.Events.FireError(0, "Html网页加载失败", errorDetails, string.Empty, 0);
    Dts.TaskResult = (int)ScriptResults.Failure;
}

拿到内部异常后,就能精准定位问题——大概率是TLS版本、网络权限或者反爬限制的问题。

2. 最常见的修复:强制启用TLS 1.2

Windows Server 2016默认可能没有启用TLS 1.2,而现在包括blogspot在内的绝大多数网站已经不再支持旧的TLS 1.0/1.1协议。在代码最开头加上这行,强制使用TLS 1.2:

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
// 如果服务器支持的话,也可以加上TLS 1.3
// System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls13;

注意:你代码里写的是HTTP地址,但目标网站会自动重定向到HTTPS,这时候协议不兼容就会触发连接错误,进而抛出包装后的Invocation异常。

3. 检查SSIS执行账户的网络权限

  • 确认SSIS服务的运行账户有访问外网的权限,没有被服务器防火墙、企业代理拦截。
  • 如果你的环境需要通过代理访问外网,给HtmlWeb配置代理:
HtmlWeb web = new HtmlWeb();
web.PreRequest = (request) =>
{
    request.Proxy = new System.Net.WebProxy("http://你的代理地址:端口号");
    // 如果代理需要认证
    // request.Proxy.Credentials = new System.Net.NetworkCredential("代理用户名", "代理密码");
    return true;
};

4. 验证HtmlAgilityPack的GAC部署

虽然你已经把DLL部署到GAC,但还是要确认:

  • 用gacutil -l HtmlAgilityPack命令检查GAC中的版本确实是1.7.4,和你开发环境引用的版本完全一致。
  • 在SSIS脚本项目中,把HtmlAgilityPack的引用设置为复制本地=false,确保脚本任务加载的是GAC中的版本,而不是本地复制的DLL。

5. 绕过目标网站的反爬限制

Blogspot会拦截没有User-Agent标识的请求,给HtmlWeb设置一个合法的UA:

HtmlWeb web = new HtmlWeb();
web.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36";

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:33:52