【发布时间】:2019-12-13 01:21:53
【问题描述】:
我的任务是通过 SSIS 从我们公司网络之外的位置下载 RSS 提要。我使用简单的脚本任务来做到这一点:
public bool DownloadFeed()
{
WebClient web = new WebClient();
try
{
web.DownloadFile(@"http://bullshit.com/feeds/something.xml", @"c:\exchange\something.xml");
return true;
}
catch (WebException ex)
{
Dts.Events.FireError(0, "Download XML", ex.Message + "\r" + ex.StackTrace, string.Empty, 0);
return false;
}
finally {
web.Dispose();
}
从我的 PC 上的 Visual Studion 可以正常工作。但是当我将 dtsx 包部署到 MS SQL Server 并创建作业时 - 作业失败并显示消息
Download Feed:Error: Unable to connect to the remote server
at System.Net.WebClient.DownloadFile(Uri address, String fileName)
at ST_7e86d0b503664f0abba3beedf3d81f00.ScriptMain.DownloadFeed()
作业在可以访问 Internet 的服务 AD 帐户下运行,当我通过该帐户下的 mstsc 连接到服务器时,我可以使用网络浏览器打开提要。
我认为原因是我们公司的所有互联网访问都是通过代理服务器。代理设置已在 Internet 选项中正确设置。但我猜想启动作业的 SQL Server 代理不使用该设置并尝试绕过代理服务器下载文件。我已要求我们的管理员允许该服务器直接访问 Internet,无需代理,但这与我们的信息安全政策相矛盾。
您能否建议如何在 SQL 中设置代理服务器来解决我的问题?
【问题讨论】:
标签: sql-server ssis proxy