我正在尝试使用WebClient对象从Web服务器下载“.aspx”文件并将其保存到文件系统,但它引发了“HTTP 500内部错误”的异常,我认为是因为服务器尝试渲染html并发送相同的内容而不是文件本身。
var objWebClient = new WebClient();
var remoteUrl = "someserverURL" + "default.aspx";
objWebClient.DownloadFile(remoteUrl, localPathToSave);
尝试添加HTTP标头,但我认为它们可能不适用于来自桌面系统而非浏览器的请求对象,已设置服务器,以“application / octet-stream”格式提供所有内容。
答案 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