为 SQL Server 代理配置 HTTP 代理



我的任务是通过SSIS从我们公司网络之外的位置下载RSS提要。我使用简单的脚本任务来执行此操作:

public bool DownloadFeed()
{
WebClient web = new WebClient();
try
{
web.DownloadFile(@"http://bullshit.com/feeds/something.xml", @"c:exchangesomething.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();
}

从Visual Studion在我的PC上它正常工作。但是当我将 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()

该作业在可以访问互联网的服务 AD 帐户下运行,当我通过该帐户下的 mstsc 连接到服务器时,我可以使用 Web 浏览器打开源。

我认为原因是我们公司的所有互联网访问都是通过代理服务器进行的。代理设置在互联网选项中设置正确。但是我猜启动作业的SQL Server代理不使用该设置,并尝试绕过代理服务器下载文件。我已经要求我们的管理员允许该服务器在没有代理的情况下直接访问互联网,但这与我们的信息安全政策相矛盾。

您能否建议如何在SQL上设置代理服务器来解决我的问题?

如果它是未经身份验证的代理,则应执行以下操作:

public bool DownloadFeed()
{
WebClient web = new WebClient();
WebProxy proxy = new WebProxy("[proxy address]", [proxy port]);
web.Proxy = proxy;
try
{

您应该能够从IE,Internet选项->连接->Lan设置或仅从管理员中获取值。

最新更新