web-dev-qa-db-ja.com

UNCパスへの仮想ディレクトリのアクセス許可の問題

私のサイト(テスト環境)に仮想ディレクトリがあります。これは、パブリックFTPとしても使用されるUNC共有です。

ドメイン管理者アカウントとして接続するように構成されており、「テスト設定」はすべてが機能しているように見えます。しかし、それに接続しようとすると、次のようになります。

500-"アクセスが拒否されたため、\ INTRANET\FTP\test\web.configで変更の監視を開始できませんでした"

これはASP.NET YSODです。それが私が要求している静的な.jpgファイルであるため、ASP.NETがまったく関与している理由がわかりません。

失敗した要求のトレースをオンにしてみましたが、これが特定のエラーです。

  • ModuleName WindowsAuthentication
  • 通知2
  • HttpStatus 500
  • HttpReason内部サーバーエラー
  • HttpSubStatus 0
  • エラーコード0
  • ConfigExceptionInfo
  • 通知AUTHENTICATE_REQUEST
  • ErrorCode操作は正常に完了しました。 (0x0)

「物理パスログオンタイプ」をClearTextからネットワークに変更した場合。次のIISエラーが表示されます。

HTTPエラー500.19-内部サーバー

エラーページの関連する構成データが無効なため、要求されたページにアクセスできません。

詳細なエラー情報

  • モジュールIIS Web Core
  • 通知BeginRequest
  • ハンドラ未定
  • エラーコード0x80070005
  • 構成エラー権限が不十分なため構成ファイルを読み取れません
  • 構成ファイル\\?\UNC\INTRANET\FTP\test\web.config
  • リクエストされたURLhttp://test.mydowmain.com:80/uploads/images/ca49acf6-6174-412e-8abd-59fab983e931.jpg

  • 物理パス\\INTRANET\FTP\test\images\ca49acf6-6174-412e-8abd-59fab983e931.jpg

  • ログオン方法未定

  • ログオンユーザー未定
  • 失敗した要求トレースログディレクトリC:\inetpub\logs\FailedReqLogFiles

これは、失敗した要求ログを奇妙に生成しません。失敗した要求のトレースを、エラーコード400〜999のエラーを追跡するように設定しました。

また、IIS内から構成機能を開くと、アクセス拒否エラーが表示されることにも注意してください。

私は、ローカルの開発マシンでまったく同じUNCパスと同じユーザーが同じように設定されています。テストサーバー上では動作しません。

何が悪いのですか?

13

それがASP.netアプリであるという事実は、おそらく問題がここにあるものです。アプリケーションプールIDには権限が必要です(必ずしもIIS ID。デフォルトでは、アプリプールIDはローカルネットワークサービスアカウントです)。)また、おそらくcaspol.exeを実行する必要があります。 IISマシン。

http://msdn.Microsoft.com/en-us/library/cb6t8dtz%28v=vs.80%29.aspx

http://learn.iis.net/page.aspx/50/aspnet-20-35-shared-hosting-configuration/

%windir%\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag 1.  -url "file://\\remotefileserver\content$\*" FullTrust
10
mfinni

Webサーバーとuncサーバーの両方で一致するアカウントを作成することで問題を解決しました。次に、ネットワークサービスではなく、一致するアカウントを使用して実行するようにアプリケーションプールを変更しました。これにより、他のネットワークサービスに依存する機能に影響を与えることなく、両方のサーバーでパスワードを同期する柔軟性が得られました。

7
I.T. Action

この共有ソースがアプリケーション(イメージフォルダーなど)でない場合は、仮想ディレクトリを含むルートアプリケーションによって仮想ディレクトリが無視されるように構成してみてください(私の場合、ルートアプリプールのタイプを次のように変更してこれを完了しました)統合モードではなくクラシック)。しかし、共有ポイントにアプリケーションがある場合は、@ mfinniが述べた方法に従うことができます。

2
Emre Guldogan

私はIIS= 7.5で同じ問題を抱えていました。解決策は次のとおりです:

  1. 共有を使用してサーバーにローカルユーザーを作成する
  2. 手順1で作成したユーザーに必要なアクセス許可を与えて、ネットワーク共有を作成します。 Windowsは、指定したユーザーの権限をセットアップします
  3. IISの仮想ディレクトリに移動し、「詳細設定」を開きます
  4. ネットワーク共有の物理パスのURLを\\<servername>\<sharename>として入力します
  5. 物理パス資格情報をクリックします。手順1で作成したユーザーの資格情報を追加します
1
Charles

IISが実行されているアカウントに、問題のあるUNCに対する適切な/必要な権限があることを確認するために確認する場合があります。

1
user48838

ドメインアカウントを使用して一部のドメインリソースにアクセスする非ドメインWebサーバーで同じ問題が発生しました。奇妙な動作が発生していました(資格情報が正しいことはわかっていても、コンテンツビューでフォルダーとファイルを表示できましたが、それらを "参照"できませんでしたが、 "テスト資格情報"は失敗しました)。解決策は、ドメインユーザーと同じ名前のローカルユーザーをマシン上に作成することでした。

これは、Webサーバーがドメインのメンバーであり、ローカルユーザーが仮想をマップするためにいくつかのローカルリソース(config?)にアクセスする必要がある場合にどうなるかを考えています。

それが誰かを助けることを願っています。

0
jprmsn