IIS から WebResponse 取得時に以下のようなエラーに悩まされたので、メモしておく。
リモート サーバーがエラーを返しました: (401) 許可されていません
[環境]
言語:C#
フレームワーク:ASP.NET.
サーバー:Microsoft Internet Information Services (IIS)
WebResponseでHTTP通信をしようとした際に発生したエラーだ。
考えられる原因
1. 権限がない
2. 通信先が、認証が必要な設定になっている
3. 通信先が、Webアプリケーション化されていない。
私のときは、2と3が原因だった。
以下、全て通信先の設定を変更できる前提の対処方だ。
通信先が、認証が必要な設定になっている
IISを起動し、通信先の認証設定を変更しよう。
「認証」をクリック
上記画像のように、「匿名認証」のみを有効にし、それ以外を無効にすれば、401は解消されます。
「匿名認証」っていうのはつまり認証不要ってことです。
全ての認証を無効にするだけだと、誰もアクセスできなくなる。
通信先が、Webアプリケーション化されていない。
IISを起動し、通信先のアプリケーションがあるフォルダを右クリックし、「アプリケーションへの変換」をしましょう。
アプリケーション化するのは、Web.Configがあるフォルダです。