通过WebClient Exception下载文件

时间:2010-04-15 11:57:24

标签: webclient

我在使用WebClient下载特定文件类型时遇到问题。因此通常的类型没有问题 - mp3,doc等,但是当我将文件扩展名重命名为config时,它会返回给我: InnerException = {System.Net.WebException:远程服务器返回错误:NotFound。 ---> System.Net.WebException:远程服务器返回错误:NotFound。    在System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)

当我尝试在浏览器中访问此文件时(http://localhost:3182/Silverlight.config) - 这是一个常见的xml文件 - 服务器返回错误页面:

'/'应用程序中的服务器错误。

此类网页未投放。 描述:未提供您请求的页面类型,因为它已被明确禁止。扩展名“.config”可能不正确。请查看下面的网址,确保拼写正确。

请求的网址:/Silverlight.config

所以我认为这是因为某些服务器配置阻止了未知类型的文件。

下载代码很简单:

WebClient webClient = new WebClient();
webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);                
webClient.OpenReadAsync(new Uri("../Silverlight.config", UriKind.RelativeOrAbsolute));

为简单起见,省略了completted eventhandler。

1 个答案:

答案 0 :(得分:2)

我不确定这是可能的。

出于安全原因,ASP.NET引擎会处理.config扩展名(连接字符串等敏感数据需要保持安全并且不会被未经授权的查看者隐藏)。

这意味着访问者只需在浏览器的地址栏中输入“www.example.com/web.config”即可查看您的web.config文件内容。

编辑:实际上你可以,但我不推荐它。如果确实需要这样做,则必须删除IIS中.config扩展名和ASP.NET ISAPI筛选器之间的映射。