ファイルのダウンドードでエラー

このQ&Aのポイント
  • あるサイトを参考にファイルをダウンドードするプログラムを組んだのですが、「リモート サーバーがエラーを返しました: (401) 許可されていません 」のエラーが出てしまいます。
  • 調べてはいますが、どう直せばいいのか分からない状況です。
  • どなたか教えてください。
回答を見る
  • ベストアンサー

ファイルのダウンドードでエラー

ファイルのダウンドードでエラー あるサイトを参考にファイルをダウンドードするプログラムを組んだのですが、 「リモート サーバーがエラーを返しました: (401) 許可されていません 」 のエラーが出てしまいます。 調べてはいますが、どう直せばいいのか分からない状況です。 どなたか教えてください。 以下ソース(C#です) ------------------------------------------------------------------ System.Net.WebClient wc = new System.Net.WebClient(); string uri = "http://192.168.0.xx/TestService/Excel/pick.xls"; string file = "pick.xls"; wc.DownloadFile(uri,file); wc.Dispose(); ------------------------------------------------------------------ エラー内容 ------------------------------------------------------------------ リモート サーバーがエラーを返しました: (401) 許可されていません 説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。 例外の詳細: System.Net.WebException: リモート サーバーがエラーを返しました: (401) 許可されていません ------------------------------------------------------------------

質問者が選んだベストアンサー

  • ベストアンサー
  • goold-man
  • ベストアンサー率37% (8365/22183)
回答No.3

追加 権限ではない場合もあるようです(参考にしたサイトのミスかも) >あるサイトを参考に あるサイトでミスがあり、開発チームにて修正作業を実行した事例があります。 参考にしたサイトとは?

参考URL:
http://developer.amazonwebservices.com/connect/thread.jspa?threadID=37704&tstart=0
aru_008
質問者

お礼

goold-man さま  ありがとうございます。 参考にしたサイトのURLは、 http://www.atmarkit.co.jp/fdotnet/csharptips/012web/012web_01.html で、そこの download.cs を参考にしました。

その他の回答 (2)

  • goold-man
  • ベストアンサー率37% (8365/22183)
回答No.2

NO1の方と同じく権限 Everyone でフルコントロールにする。 参考URL

参考URL:
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=30082&forum=7
  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.1

そのURLに対しての権限は設定されているのでしょうか? エラーから、URI で指定しているリモートサーバへのアクセスが許可されていないように思えます。

aru_008
質問者

お礼

mnabeさま ありがとうございます。 原因はご指摘のとおりだと思います。 >URI で指定しているリモートサーバへのアクセスが許可されていないように思えます。 無知で恐縮なのですが、 このアクセス権限の設定はどうやってやるのでしょうか。 「ココ見ろ!」ってのでもかまいませんので、教えていただければ助かります。

関連するQ&A

  • C#でDownloadFileAsync

    最近C#のプログラミングの勉強を始めました。 ファイルをWEB上からダウンロードする方法についての質問です。 以下のコードを使って、HTMLファイルをDLすることは問題なくできました。 System.Net.WebClient wc = new System.Net.WebClient(); Uri url = new Uri("http://okwave.jp/"); string filename = "tempfile.html"; wc.DownloadFile(url, filename); しかし、以下のように非同期のメソッドにした場合、うまくファイルがDLされません。 System.Net.WebClient wc = new System.Net.WebClient(); Uri url = new Uri("http://okwave.jp/"); string filename = "tempfile.html"; wc.DownloadFileAsync(url, filename); なおDLされないというのは、コンパイルも通るし例外も出ないし tempfile.htmlというファイル自体は作成されるのですが、 サイズが0KBの空っぽのものになってしまうという意味です。 後半のソースも、どこかのサイトからほぼコピペしてきたものなのですが、 何か重大な見逃しをしているのか、設定が悪いのか、 いろいろネットをあたってもそれらしい解決策は得られませんでした。 .Netにあまりなじみがないのでくだらないミスをしているのかもしれませんが、 行き詰ってしまいましたので皆様のお知恵をお借りできればと思います。 よろしくお願いします。 環境 Win8 64bit Visual Studio Express 2012 for Win Desktop ↑特に設定いじってなし

  • WebClientの文字列送信にてエラー

    .net のWebClientを使用して文字列をアップロードしているのですが、上手くいかず以下のようなエラーが返されます。 エラー内容:「サーバーによってプロトコル違反が発生しました. Section=ResponseHeader Detail=ヘッダー名が無効です。」 [環境] VS2005 VB.NET [ロジック] Using wc As New System.Net.WebClient wc.Encoding = System.Text.Encoding.GetEncoding("shift_jis") wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded") wc.Credentials = New System.Net.NetworkCredential(user,pass) Dim url As New System.Uri("http://指定のURL") Dim returnvalue As String = wc.UploadString(url, "POST", "送信文字列") End Using 補足ですが、通信にはベーシック認証を使用していますが、ユーザー・パスは問題ありません。 UploadStringAsyncを使用すれば文字送信はできています。 通信結果をサーバーより取得するためUploadStringを使用しています。 どなたか解決策をご存知の方はご教授いただきたいと思います。 宜しくお願い致します。

  • サーバーにアップロードしたい

    このサイトに http://dobon.net/vb/dotnet/internet/ftpwebclient.html WebClientを使ってFTPサーバーからファイルをダウンロード、アップロードするというのがあります これを参考に実行して見ますと、ダウンロードはうまくいくんですが、アップロードがうまくいきません。 そのプログラムは 'WebClientオブジェクトを作成 Dim wc As New System.Net.WebClient() 'ログインユーザー名とパスワードを指定 wc.Credentials = New System.Net.NetworkCredential("username", "password") 'FTPサーバーにアップロード wc.UploadFile("ftp://localhost/test.txt", "C:\test.txt") '解放する wc.Dispose( と、非常にシンプルです。なんでうまくいかないんでしょうか?

  • ファイルのダウンロード時のエラーの処理について

    Dim wc As New System.Net.WebClient wc.DownloadFile("http://oshiete1.goo.ne.jp/images_goo/goo.gif", "C:\goo.gif") というコードでファイルをダウンロードする場合に ファイルが存在すれば良いのですが、 指定の場所に指定のファイルがなかった場合や 指定したサーバー自体が見当たらない場合や、 返答がなく異常に時間がかかった場合の処理をしたいです。 on Error goto を使うとエラー番号で[5]が出るのですが、 エラールーチンを設けないとデバッグのメッセージで サーバー関係のエラーのメッセージ(404とか)が表示されるのですが、 そのような具体的なエラー番号やエラーの状態をプログラム内で 得るにはどうしたら出来るでしょうか。 何か良い方法がありましたら、ご教示頂きたく、お願い致します。m(__)m

  • c# なぜ警告が出るのか、教えて下さい

    http://dobon.net/vb/dotnet/internet/downloadfile.html の「同期的にファイルをダウンロードし保存する」の例文、 System.Net.WebClient wc = new System.Net.WebClient(); wc.DownloadFile(jczurl, @"c:\test.xml"); wc.Dispose(); を書くと、 1行目「System.Net.WebClient wc」の「wc」は「';' が必要です。」と怒られ、 2行目「jczurl, @"c:\test.xml"」の@の次の「"」は「無効な文字です。」と怒られてしまいます。 無知ですみませんが、理由を教えて下さい。 宜しくお願い致します。

  • WebClient.Uploadメソッドでファイル転送したい。

    こんにちわ。 いまVB.Net2003で開発をしている者です。 WebClient.Uploadメソッドで,IISの仮想ディレクトリに HTTPでファイル転送したいと思い,下記のコーディングをしました。 Dim myWebClient As New WebClient Dim responseArray As Byte() = myWebClient.UploadFile("http://localhost/TEST/Test.txt", "d:/temp/test.txt") このとき,下記のようなエラーメッセージが表示されます。 「'System.Net.WebException'のハンドルされていない例外がsystem.dllで発生しました。 追加情報:リモートサーバーがエラーを返しました:(405)メソッドは使用できません。」 なおIISの設定で,仮想ディレクトリの"読み取り"と"書き込み"をチェックしています。 さらに当該フォルダについて,エクスプローラで セキュリティプロパティでは, "ネットワーク上でこのフォルダを共有する"にチェックを付け, "Web共有"も"共有する"にしています。 なにか設定が足りないのでしょうか? 教えてください。 よろしくお願いします。

  • PCのフリーソフトが起動しなくなりました。。。

    PCには疎いので初歩的なことしかわかりません。今までダイエット用に使っていたフリーソフト(体重を書き込む程度の日記みたいなもの)が起動しなくなりました。凄く使いやすかったし、1年間のダイエット記録が詰まっているので復旧させたいのですが、製作者さんの公式ページはなくなっているし、Readme.txtに書いてあった連絡先に問い合わせてみたのですが、返信はありません。ご本人のブログも今年の初めあたりで止まっているみたいなので、あまり期待できません。 具体的に、起動しようとすると「起動失敗」というウィンドウがでます。以下がそのメッセージです。 詳細:System.Net.WebException:リモートサーバーがエラーを返しました: (404) 見つかりません 場所 System.Net.WebClient.DownloadFile(Uri address, String fileName) 場所 System.Net.WebClient.DownloadFile(String address,String fileName) 場所 SHeathCare.Frm_Login.Frm_Main_Load(Object sender, EventArgs e) そこでOKを押すと通常通りログイン画面が出るのですが、ログインしようとすると「ログインエラー」というウィンドウが「データベースの接続設定が正しく行われていません。」というメッセージとともに現れます。ユーザー情報設定のボタンを押しても同じウィンドウが出ました。 「困ったときは」のところに「フォルダ内の” hcr ”という拡張子のファイルをバックアップしたほうがいい」と書いてあります。素人考えなのですが、万一このソフトがこのまま使えないとしたら、なにか別の手段でこれまでのhcrファイルを開いて、これまでのダイエット記録を見るということはできますでしょうか? ちなみにこうも書いてありました。↓ データが消えた?ログインユーザがいなくなった?場合などは バックアップデータから問題が発生した日より前の更新日付のデータを新しいものから順に ファイル名を「HealthCare」に変更し、「hcr」フォルダ内の同一ファイルに上書きコピー してみてください。もしかしたら、データが復活するかもしれません。 長々回りくどくなりましたが、質問は「またソフトを使えるようにできるかどうか、そうでなければ別の方法でこれまでの記録を確認できるかどうか」です。よろしくお願いします。

  • Active Directory接続エラーについて

    現在、Active directoryのグループ名を指定し検索を行い、ユーザー一覧を取得したく、 ASP.NETで開発を行っております。 ローカル環境からActive directoryへの接続は出来るのですが、 サーバー機へ配置し検索を行おうとすると、下記の「セキュリティ例外」により接続できず困っています。 ご回答よろしくお願い致します。 開発環境 windows server 2008 R2 standard  Visual Studio 2008  .Net Framework 3.5  ASP.NET Active directory 環境  windows server 2008 R2 standard 困っていること  サーバー機へ配置し、検索してみると、下記のエラー内容により接続できない。 現象  ・ローカル環境でデバック時にはADへの接続はできる。  ・サーバー機へ配置後、ADへの接続ができない。 ADへの接続設定(ASP.NET)  Dim serverPath As String = "LDAP://192.168.xxx.xxx/DC=test, DC=com"  Dim username As String = "CN=Administrator, CN=Users, DC=test, DC=com"  Dim password As String = "xxxx"    Dim entry As New DirectoryEntry(serverPath, username, password, AuthenticationTypes.FastBind)  '接続チェック  Try   Dim obj As Object = entry.NativeObject  Catch ex As Exception   Throw New ApplicationException("Exception Occured")  End Try エラー内容  セキュリティ例外  例外の詳細: System.Security.SecurityException: 型 'System.DirectoryServices.DirectoryServicesPermission, System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' のアクセス許可の要求に失敗しました。

  • asp.net IIS実環境でのエラー

    いつもお世話になっております。 ローカルにて、開発していたasp.net(visual basic利用)のWebアプリケーションを、実環境のサーバ(Windws Server 2008 R2)へ移行したところ、次のエラーが発生いたしました。 「C:該当ページファイルの物理パス名XXXXX:ASP.NETのランタイムエラーです。:アプリケーション開始前の初期化メソッドStart(型System.Web.WebPages.Deployment.PeApplcationStartCode)が例外をスローしました。エラーメッセージは次のとおりです:呼び出しのターゲットが例外をスローしました。」 ローカルでは正常に動いていますが、原因がなかなかわかりません。 こうしたエラーに対し原因など、アドバイスをいただければ有難く存じます。 よろしくお願い申し上げます。

  • ファイルマネージャー

    perlで書かれたwebminにあるファイルマネージャーを利用すると、システムの所有権関係なく、ファイルの編集ができるようですが、その編集するためのソースコードがわかる方はいらっしゃいますか? 通常のopen関数ではできなかったし、net::sftp::foreignのputだとローカルとリモートのやり取りなので、リモートとローカルが同一のマシンでしかやり取りできず、端末を変えるとエラーになります。 レンタルサーバー向けのファイルマネージャーの開発になります。 裏技としてアカウント生成時にアカウント内に個別にファイル編集スクリプトをぶち込んでおいて、それを使って編集してやればやれなくはないですけど、それだと手間がかかりますので、あまりやりたくないです。 かと言って、ftpクライアントを入れるのがめんどいって方に入れていただくのも、なんと言いますか……