web-dev-qa-db-ja.com

IIS構成を共有するNLB環境でマネージャーユーザーをIISマネージャーユーザーに設定するにはどうすればよいですか?

2ノードのNLBクラスターをセットアップし、以下を使用してIIS構成をそれらの間で共有しました。

http://blogs.technet.com/b/meamcs/archive/2012/05/30/configuring-iis-7-5-shared-configuration.aspx

IIS構成とコンテンツは、UNCパスを介してネットワーク共有に配置されます。これは機能します-あるノードのIIS設定の更新は、別のノードで表示され、私のWebサイトは、個々のノードとクラスター全体で機能します。

FTPサイトをセットアップして、Windowsログインに正常に接続できます。ただし、次のように定義されているIISマネージャー認証を使用したい。

http://www.iis.net/learn/publish/using-the-ftp-service/configure-ftp-with-iis-manager-authentication-in-iis-7

FTP COMオブジェクトと3つのホストすべてに存在する専用ユーザーアカウントで「ネットワークサービス」を使用しようとしましたが、IISユーザーを取得してログインしようとするたびに、次のようなもの:

IISWMSVC_AUTHENTICATION_UNABLE_TO_READ_CONFIG

認証情報の取得中に予期しないエラーが発生しました。

例外:System.Runtime.InteropServices.COMException(0x8007052E):ファイル名:エラー:

microsoft.Web.Administration.Interop.AppHostWritableAdminManager.GetAdminSection(String bstrSectionName、String bstrSectionPath)at Microsoft.Web.Administration.Configuration.GetSectionInternal(ConfigurationSection section、String sectionPath、String locationPath)atMicrosoft.Web.Management.Server.ConfigurationAuthenticationProvider。 GetSection(ServerManager serverManager)

Process:dllhost User = NT AUTHORITY\NETWORK SERVICE

誰かが私をここで正しい方向に向けることができますか?

3
William Jens

この1週間、このまったく同じ問題と戦ってきましたが、回避策を見つけました。

IISが共有構成モードの場合(ローカル構成で正常に機能します)、カスタムIISManager認証プロバイダーには追加の(文書化されていない)アクセス許可要件があるようです。

イベントログ:アプリケーション

タイプ:エラー

出典:Microsoft-Windows-IIS-IISManager

カテゴリー:

イベント:1106

メッセージ:

IISWMSVC_AUTHENTICATION_UNABLE_TO_READ_CONFIG

認証情報の取得中に予期しないエラーが発生しました。

例外:System.Runtime.InteropServices.COMException(0x8007052E):ファイル名:エラー:

microsoft.Web.Administration.Interop.AppHostWritableAdminManager.GetAdminSection(String bstrSectionName、String bstrSectionPath)at Microsoft.Web.Administration.Configuration.GetSectionInternal(ConfigurationSection section、String sectionPath、String locationPath)atMicrosoft.Web.Management.Server.ConfigurationAuthenticationProvider。 GetSection(ServerManager serverManager)

プロセス:dllhostプロセス:dllhostユーザー= NT AUTHORITY\NETWORK SERVICE

これを受け取ったことを確認できます後でさえ「ネットワークサービス」権限をあちこちに適用しました (つまり、すでに参照されている次のコマンド):

ICACLS "%SystemDrive%\Windows\System32\inetsrv\config" /Grant "Network Service":R /T
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config\administration.config" /Grant "Network Service":R
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config\redirection.config" /Grant "Network Service":R

上記のフォルダに加えて、「ネットワークサービス」アカウント[完全なアクセス許可]を以下に追加しました。

  1. 共有構成フォルダー(および以下のファイル)。
  2. ターゲットFTPフォルダー自体。

上記のいずれも問題に影響しません。

問題は、このエラーメッセージがnormalメッセージとは異なることです。この場合、「ファイル名:」と「エラー:」の詳細は両方とも空白です(通常、xxx.configファイル名は、アクセス許可が行方不明)。だからこれは別のものです...

また、Process Monitorを実行しましたが、そこにもアクセス拒否メッセージは表示されませんでした。私の考えでは、これはIISユーザー管理プロセスが最初に開始されて構成の読み取りを試みた(そして失敗した)ときからのキャッシュエラーである可能性があります。それを機能させる方法(以下を参照)。

ブレークスルーは、 FTP拡張プロセスIDを変更 から '{Domain}\Administrator'以降に発生しました。動作したマシンを再起動します!

注:IISResetは機能しません。これが、ここに(復元力のある)キャッシュされているものがいくつかあると私に信じさせる理由です。

さらなるテストとして、次のことを行います。

  1. 新しいプレーンドメインユーザーアカウントを作成しました(「{ドメイン}\FTPService」と呼ばれます)。
  2. fTPプロセスIDをこの新しいアカウントに切り替えました。
  3. 構成フォルダーに適切なアクセス許可を適用しました。
  4. 再起動しました。

その後、同じエラーメッセージが再び表示されます(空白のユーザー名/エラーが表示されます)。

最後に、新しい「FTPService」ユーザーを「DomainAdmins」のメンバーにして再起動したとき(ここでも、キャッシュによって即時修正が妨げられます)動作します。

これは、Windows 2008/IIS7(FTP7.5アドオン付き)、Windows 2008 R2/IIS 7.5、Windows 2012/IIS8、およびWindows 2012 R2/IIS8.5でも試してみましたが、それぞれに同じ問題(および解決策)。

したがって、共有構成とネットワークサービスアカウント(FTP拡張プロセスの管理者権限を付与せずに)でこれを機能させるには、バグまたは「文書化されていない」権限が必要なようです。 FTP 7.5の登場以来。

これは回避策ですが、ネットワークサービスまたはドメイン管理者以外のユーザーアカウントでこれを機能させるために必要な追加のアクセス許可を確認することは素晴らしいことです。

3
Simon Gregory