从WebClient对象下载.aspx文件

时间:2013-02-21 11:56:25

标签: c# .net

我正在尝试使用WebClient对象从Web服务器下载“.aspx”文件并将其保存到文件系统,但它引发了“HTTP 500内部错误”的异常,我认为是因为服务器尝试渲染html并发送相同的内容而不是文件本身。

var objWebClient = new WebClient();    
var remoteUrl = "someserverURL" + "default.aspx";
objWebClient.DownloadFile(remoteUrl, localPathToSave);

尝试添加HTTP标头,但我认为它们可能不适用于来自桌面系统而非浏览器的请求对象,已设置服务器,以“application / octet-stream”格式提供所有内容。

1 个答案:

答案 0 :(得分:1)

你不能这样做。

如果Web服务器设置正确,则不允许您直接下载aspx文件。

它下载所有其他文件(如jpeg和文本文件)的原因是因为Web服务器很乐意提供这些文件类型并允许它们下载。

如果您尝试做的事情是可能的,那么任何人都可以下载任何.net网站的aspx源文件,这将是非常不安全的。

你可以做的是从.aspx页面获取渲染的html内容并保存。

var webClient = new WebClient();    
var remoteUrl = "someserverURL" + "default.aspx";
byte[] data = webClient.DownloadData(remoteUrl); 
var utf8Encoding = new UTF8Encoding(); 
var html = utf8Encoding.GetString(data);

//now you could save the html to a file