Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从WebClient对象下载.aspx文件_C#_.net - Fatal编程技术网

C# 从WebClient对象下载.aspx文件

C# 从WebClient对象下载.aspx文件,c#,.net,C#,.net,我试图使用WebClient对象从web服务器下载一个“.aspx”文件并将其保存到文件系统,但它引发了“HTTP 500内部错误”的异常,我认为,因为服务器试图呈现html并发送相同的内容,而不是文件本身 var objWebClient = new WebClient(); var remoteUrl = "someserverURL" + "default.aspx"; objWebClient.DownloadFile(remoteUrl, localPathToSave);

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

var objWebClient = new WebClient();    
var remoteUrl = "someserverURL" + "default.aspx";
objWebClient.DownloadFile(remoteUrl, localPathToSave);
尝试添加HTTP头,但我认为它们可能不适用于来自桌面系统而不是浏览器的请求对象,已将服务器设置为以“应用程序/八位字节流”格式提供所有内容。

您不能这样做

如果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

当您使用真正的浏览器直接浏览到该文件时,您会看到什么?该页面是否需要身份验证?@ShadowWizard抱歉忘了提及它下载所有其他文件类型,即“.txt、.gif、.jpg”等。否该页面不需要身份验证。基于浏览器的请求还服务器错误页面“HTTP 500内部错误”,因此这意味着页面中存在错误,您到底想下载什么?你不能“下载”源代码,这是黑客行为。我想将该页面作为内容下载,而不是呈现它,该页面不属于网站,它是一个简单而孤独的“.aspx”页面,需要由应用程序下载。正如我所说,答案也说,你不能这样做。扩展名为
.aspx
的文件由服务器呈现,除非您直接连接到web服务器,否则无法看到其中的源代码,在这种情况下,您需要像阅读文本文件一样阅读。我认为您是正确的,但服务器上的页面只是一个页面(另一个要下载的内容,而不是网站的一部分),我相信,尽管建议的代码示例不起作用,它仍然会抛出相同的错误“HTTP 500内部错误”。您可以在web浏览器中查看的呈现html吗?如果可以,则无法按尝试的方式下载。假设您的web服务器是iis,如果您已设置asp.net,则iis将不允许下载.aspx文件,即使该页面不是网站的一部分。是的,web服务器是iis,我已从其映射中删除了为“.aspx”服务的处理程序,同样在这样做之后,我能够下载该文件。