Azure Data Factory执行SSIS包报错:SMTP连接管理器未找到
解答
是否可以无需部署直接在ADF中执行.dtsx文件?
可以直接从Blob存储/文件共享执行.dtsx文件,ADF的Execute SSIS Package活动确实支持这种模式,无需依赖SSISDB。但需要注意两点:
- 配置IR的旧版本兼容:VS2008创建的是SSIS 2008版本(版本号10.0),在创建或修改Azure SSIS IR时,需在高级设置中将「包兼容性级别」指定为「SQL Server 2008」,否则可能出现包组件(包括连接管理器)不兼容的问题。
- 确保IR的存储访问权限:配置IR通过托管身份或SAS密钥,拥有访问存储.dtsx文件的Blob存储/文件共享的权限。
如何让SMTP连接管理器被识别?
针对从文件共享运行包时SMTP连接管理器不被识别的问题,按以下步骤排查修复:
- 核对连接管理器精确名称:打开VS2008中的原SSIS包,确认SMTP连接管理器的名称(大小写敏感),确保ADF Execute SSIS步骤中参数的
Name值与之一致。 - 修正参数配置格式:检查连接管理器参数的语法是否正确,标准格式为:
示例SMTP连接字符串:Scope=Package; Name=<精确连接管理器名称>; Property=ConnectionString; Value=<正确的SMTP连接字符串>SmtpServer=smtp.contoso.com;Port=587;UseSSL=True - 单独传递敏感属性:如果SMTP需要身份验证密码,不要将密码嵌入连接字符串,而是单独添加参数并标记为敏感:
Scope=Package; Name=<精确连接管理器名称>; Property=Password; Value=<SMTP密码> - 调整Scope层级:如果SMTP连接管理器嵌套在容器(如Foreach循环、Sequence容器)内,需将
Scope值改为对应容器的名称,而非Package。 - 验证网络连通性:确保Azure SSIS IR能够访问目标SMTP服务器,若SMTP是内部服务器,需将IR加入对应的虚拟网络打通链路。
- 调整包的敏感信息设置:原包使用「用密码保存敏感信息」模式,在文件共享运行时可尝试将包的保护级别改为「DontSaveSensitive」,完全通过ADF参数传递所有敏感属性(如密码)。
内容的提问来源于stack exchange,提问作者user3772443
相关产品推荐
相关产品推荐

