使用C#Agility Pack从IIS 7中托管的代理服务器应用程序读取网站

时间:2014-11-25 13:50:58

标签: c# asp.net iis proxy

我正在创建一个 ASP.NET MVC 4 网站,该网站从其他网站检索优惠并在我的网站中汇总其内容。 (基本上,这只是为我提供的食物和一些工作朋友在我们外出吃午餐时使用。)

我正在使用Agility Pack阅读网站,如下所示:

HtmlWeb webget = new HtmlWeb();
WebProxy wp = new WebProxy(new Uri("http://my-proxy.proxy.proxy.proxy:<port>"), true);
wp.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;

var doc = webget.Load(url, "GET", wp,
    System.Net.CredentialCache.DefaultNetworkCredentials);

Visual Studio 中运行可行。但是当我从 IIS 运行它时,我收到以下错误:

  

错误:无法检索请求的网址。以下错误   在尝试检索网址时遇到:拒绝访问。访问   控制配置可以防止您的请求被允许   时间。如果您有这种感觉,请与您的服务提供商联系   不正确。您的缓存管理员是在11月25日星期二生成的   2014 12:22:30 GMT by proxy Address(squid)。

请注意,我已使用ASP.NET v4.0应用程序池配置了我的Web应用程序。

我的代码中是否有任何遗漏?

1 个答案:

答案 0 :(得分:1)

应用程序池的标识没有访问代理服务器所需的权限。

您可以将应用程序池的标识设置为具有权限的用户,也可以在代码中设置用户的标识。

var request = WebRequest.Create("http://foo.bar/file.doc");
request.Credentials = new System.Net.NetworkCredential("username", "password");