0

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

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

尝试添加 HTTP 标头,但我认为它们可能不适用于来自桌面系统而不是浏览器的请求对象,已设置服务器以“应用程序/八位字节流”格式提供所有内容。

4

1 回答 1

1

你不能这样做。

如果网络服务器设置正确,它将不允许您直接下载 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
于 2013-02-21T12:10:56.747 回答