WebExceptionはハンドルされませんでした

タグの編集
投稿者 砂漠  (社会人) 投稿日時 2017/2/28 19:10:40
お世話になっております

初級講座第6章クラス 第46回クラスの作成 4.コンストラクタ
リスト5:DownloadCommanderクラスとそのDownloadメソッド
リスト6:フォーム側のプログラム。DownloadCommanderクラスのDownloadメソッドの呼び出し

を入力し、デバッグすると、

WebExceptionはハンドルされませんでした。
型'System.NetWebException'のハンドルされていない例外がSystem.dllで発生しました

追加情報:WebClient要求で例外が発生しました。

と、いうエラーが表示され、リスト5の

wc.DownloadFile(URL, FileName)

の箇所が黄色い背景で表示されます

このエラーにどう対処すればいいか見当がつきません
ご助言いただけないでしょうか?

私の環境は、Windows10 VisualStudio2015 です
投稿者 (削除されました)  () 投稿日時 2017/3/1 15:29:21
(削除されました)
投稿者 YuO  (社会人) 投稿日時 2017/3/1 15:31:30
http://rucio.a.la9.jp/main/dotnet/shokyu/standard46.htm

ここのコードをコピーして実行してみたところ,WebExceptionが確かに発生し,
InnerExceptionに,"パス 'C:\souri01.jpg' へのアクセスが拒否されました。"と出ていました。

Button1_Clickメソッド中の,
Dim Folder As String = "C:"


Dim Folder As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)

のようにすると,例外が発生せずに動くようになります。


たぶん,Windows XPまでであれば,元のコードでも動作します。
Vista以降では,UACによって,昇格していない状態でのC:\への書き込みアクセスが拒否されるので,このような例外になっています。 

# CODEを正しく記述しないまま投稿してしまったので,一個前の投稿を削除しています。
投稿者 砂漠  (社会人) 投稿日時 2017/3/1 21:31:49
YuOさん、ご返答ありがとう御座います
教えてくださったようにコードを書き換えて実行してみたところ、
無事デスクトップに souri01.jpg が保存されました

ここ以外でも、例えば、日本中央競馬会のDataLabというサービスの
プログラミングパーツや開発支援ツールを使おうとしても、
やはりエラーが頻発してまともに動かないことから、
環境やバージョンの問題かなと予測はしていましたが、
windowsの問題だったんですね
PCを買い換えてから勉強をするのは、間違いですね
後の祭りですが

UACによって昇格していない状態でのC:\への書き込みアクセスの拒否云々については、
これから調べてみます。取り急ぎお礼まで