我正在编写以下代码,以使我的应用程序访问另一个内部页面:
WebClient client = new WebClient();
String DummyPageUrl = HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.ApplicationPath.TrimEnd('/') + "/Maintenance.aspx";
client.DownloadData(DummyPageUrl);
它在登台服务器上工作正常,但相同的代码给出了#34; System.Net.WebException:远程服务器返回错误:(401)未经授权。"客户端的生产服务器上的错误。但是,当我重写下面的代码时,它在那里工作:
String DummyPageUrl = HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.ApplicationPath.TrimEnd('/') + "/Maintenance.aspx";
System.Net.WebRequest request = System.Net.HttpWebRequest.Create(DummyPageUrl);
request.UseDefaultCredentials = true;
request.PreAuthenticate = true;
request.Credentials = CredentialCache.DefaultCredentials;
System.Net.WebResponse response = request.GetResponse();
但问题是我使用Pechking dll将应用程序中的另一个页面转换为pdf。因此,当我将页面的url提供给dll时,它也会出现相同的错误。现在,如果我自己使用上面的第二种方法获取html内容并提供给Pechkin dll,我会在生成的pdf中遇到格式化问题。所以,事实上,我只是希望服务器允许代码在应用程序中发送请求页面的请求。 我还检查了服务器上的IIS设置。例如,在那里启用匿名身份验证。我在应用程序池中设置了托管流水线模式作为' Classic'就像我们在登台服务器上一样。但似乎没有任何效果。我想我们仍然缺少一些设置。 请帮忙。