【发布时间】:2013-02-21 11:56:25
【问题描述】:
我正在尝试使用 WebClient 对象从 Web 服务器下载“.aspx”文件并将其保存到文件系统,但它引发了“HTTP 500 内部错误”异常,我认为是因为服务器尝试呈现 html 并发送相同的内容而不是文件本身。
var objWebClient = new WebClient();
var remoteUrl = "someserverURL" + "default.aspx";
objWebClient.DownloadFile(remoteUrl, localPathToSave);
尝试添加 HTTP 标头,但我认为它们可能不适用于来自桌面系统而不是浏览器的请求对象,已将服务器设置为以“应用程序/八位字节流”格式提供所有内容。
【问题讨论】:
-
当您使用真实浏览器直接浏览该文件时,您会看到什么?该页面是否需要身份验证?
-
@ShadowWizard 抱歉忘了提到它会下载所有其他文件类型,即“.txt、.gif、.jpg”等。没有该页面不需要身份验证。基于浏览器的请求还提供错误页面“HTTP 500 Internal Error”
-
所以这意味着页面有错误,你到底要下载什么?你不能“下载”源代码,这是黑客行为。
-
我想将页面下载为内容而不是渲染,该页面不属于网站,它是一个简单而孤独的“.aspx”页面,需要由应用程序。
-
就像我说的,答案也说,你不能那样做。带有
.aspx扩展名的文件正在由服务器呈现,除非您直接连接到 Web 服务器,否则您看不到其中的源代码,在这种情况下,您需要像阅读文本文件一样阅读它。