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

これはできません。

Web サーバーが正しく設定されている場合、aspx ファイルを直接ダウンロードすることはできません。

jpeg やテキスト ファイルなどの他のすべてのファイルをダウンロードする理由は、Web サーバーがこれらのファイル タイプを喜んで提供し、ダウンロードできるようにするためです。

あなたがしようとしていることが可能であれば、誰でも .net サイトの aspx ソース ファイルをダウンロードできてしまい、非常に安全ではなくなります。

できることは、レンダリングされた html コンテンツを .aspx ページから取得して保存することです。

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 に答える