- - PR -
Response.WriteFileでネットワーク上のファイルがダウンロード出来ない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-12-08 21:25
ASP.NETで下記ソースでファイルのダウンロードの処理を作成中です。
response.ContentType = "application/octet-stream"; response.AddHeader("Content-Disposition","attachment;filename=00000.dwg"); response.Flush(); response.WriteFile("\\B\bbb\2023920081009145854.dwg"); response.Flush(); response.Close(); response.End(); ファイルのダウンロードのダイアログが表示され、 dwg形式のファイルがローカルに保存されたが、元のファイルと異なるサイズで保存される。(テキストで確認すると、aspxファイルのソースが書かれていた。) response.WriteFile部分でのファイルのフルパスが取得出来ていないからだとは思いますが、 原因がわからず行き詰っています。 原因等分かる方がいれば教えて頂きたく、よろしくお願いします。 WEBサーバ(A)からサーバ(B)の共有フォルダbbbのファイルをダウンロードします。 環境は IIS5.1 Windows2000Server VB.Net 2003 です。 | ||||
|
投稿日時: 2008-12-08 22:04
ASP.NET アプリケーションを実行するプロセスには、デフォルトでネットワークへのアクセス権が無いからです。 | ||||
|
投稿日時: 2008-12-08 22:04
ステップ実行してみたらエラーになってないですか?
ASP.NETを実行しているユーザが共有フォルダにアクセスする権限がないのかもしれないですね。 [追記] あ、よく見てませんでした。Jittaさんがおっしゃってるとおりでしょうね。 HttpResponse.Flush メソッド 「現在バッファリングされているすべての出力をクライアントへ送信します。 」 [ メッセージ編集済み 編集者: べる 編集日時 2008-12-09 08:45 ] | ||||
|
投稿日時: 2008-12-08 22:41
ご返答ありがとうございます。
>渋木宏明さん >ASP.NET アプリケーションを実行するプロセスには、 >デフォルトでネットワークへのアクセス権が無いからです。 上記について、 コンピュータの管理でASPNETユーザにグループAdministratorsを設定し、 共有フォルダにeveryoneの権限を追加しましたが、まだファイルのパスが取得出来ていないみたいです。 上記設定の他に何か設定する項目はありますでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2008-12-08 23:48
そんなことしちゃダメです。 Web アプリケーションがクラックされたら、何でもし放題になってしまいます。 通常、そのアプリケーションを実行するための専用アカウントを作成して、そのアカウントに共有フォルダへのアクセス(だけ)を許可して対応します。 | ||||
|
投稿日時: 2008-12-09 08:39
太字の行は、「response.Clear();」 |
1