- - PR -
WebClient.DownloadFileでエラー
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-05-26 16:55
いつもお世話になっております。
現在vb.netで最新アプリケーション自動更新プログラムを作成しています。 Webサーバ側にあるdllファイルをClientマシンにダウンロードする仕組みを作っています。 WebClient.DownloadFileメソッドを使用しているのですが、 その際に以下のようなエラーとなります。 ーーーーーーーーー----- System.Net.WebException: リモート サーバーがエラーを返しました : (404) 見つかりません。 at System.Net.HttpWebRequest.CheckFinalStatus() at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.HttpWebRequest.GetResponse() at System.Net.WebClient.DownloadFile(String address, String fileName) at AutoUpdateLib.FrmMain.tmrStart_Elapsed(Object sender, ElapsedEventArgs e) ーーーーーーーーーーーー サーバーはWin2003 EnterPriseEditionを使用しています。 クライアントはWinXP Professionalを使用しています。 IISで何か設定をしなくてはいけないのでしょうか。 Webサーバ側にあるdllファイルの配置フォルダにテストのHTMLファイルを置き、 クライアント側から実行した場合、問題なく実行できました。 このサイトの他の質問に同じような内容のものがあり、試してみたのですが うまくいきませんでした。 ご存知の方いらっしゃいましたらお教えください。 どうぞよろしくお願い致します。 |
|
投稿日時: 2006-05-26 17:06
IIS6.0ですよね?
IISの設定の、MIMEマップで拡張子がdllのファイルを静的コンテンツとして登録してあげる必要があるようです。 [ メッセージ編集済み 編集者: burton999 編集日時 2006-05-26 17:36 ] |
|
投稿日時: 2006-05-26 17:37
burton999さん、ありがとうございます。
IIS6.0です。 IISのローカルコンピュータのプロパティ画面の「MIMEの種類」ボタンを クリックして、dllを新規拡張子に追加し、MIMEの種類には「octet-stream」を指定してみましたが、同じように System.Net.WebException: リモート サーバーがエラーを返しました : (404) 見つかりません。というエラーが出てきてしまいます。 他に何か設定などありましたら教えていただけますでしょうか。 よろしくお願い致します。 |
|
投稿日時: 2006-05-26 18:20
MIMEの種類には「application/octet-stream」に設定しましたか?
今、手元に環境がないため試してませんが_| ̄|○ 不明な IIS 6.0 が供給しない MIME タイプ http://support.microsoft.com/default.aspx?scid=kb;ja;326965 GrapeCity.com - PowerTools > 対応環境一覧 > Windows Server 2003 http://www.grapecity.com/japan/support/powertools_os_win2003_setup.htm |
|
投稿日時: 2006-05-27 21:33
Web サービスを作って、ファイル名とローカルのバージョン番号を引数にして、それより新しいバージョンのファイルがあればファイルを返すという関数を用意するのがいいと思う。
今の作りだと、DLL を外部に見せるという、ちと危ないことをやろうとしていると思います。 |
|
投稿日時: 2006-05-30 16:06
みなさんありがとうございます。
エラーとなっていた原因が分かりました。 IISのWebサイトのプロパティの仮想ディレクトリタブ内の 構成ボタンで表示される画面のマッピングタブ内の アプリケーションの拡張子に ダウンロードするファイルの拡張子が追加されていたためでした。 これを削除したところ、問題なくダウンロードできました。 それからJittaさんに質問なのですが、 DLL を外部に見せないやり方というと、具体的にどのようなやり方があるのでしょうか。 また、大変基本的なことで申し訳ありませんが、 DLLを外部に見せることで問題になることはどのようなことなのでしょうか。 お手数ですが回答いただけると助かります。 宜しくお願いいたします。 |
1