Visual Studio での Web 配置に関する問題のトラブルシューティング
適用対象: インターネット インフォメーション サービス
この記事は、Web 配置を介して正しく構成されていないサーバーに Visual Studio から発行しようとしたときの一連のエラーのトラブルシューティングに役立ちます。 この記事は特定の製品バージョン向けに記述されていますが、概念は新しいバージョンにも適用できます。
次のスクリーンショットとエラーを収集するには、Visual Studio で新しい ASP.NET MVC プロジェクトを使用します。 移行先サーバーは、インターネット インフォメーション サービス (IIS) を使用した Windows Server のクリーン インストールでした。 他の構成は行われませんでした。
サーバーに接続できない
発生する可能性が高い最初のエラーは、Visual Studio の出力ウィンドウの次のスクリーンショットのようになります。 読みやすさを向上させるために、スクリーンショットの下にメッセージのフルテキストが表示されます。
Web deployment task failed.(Could not connect to the destination computer ("deployserver").On the destination computer, make sure that Web Deploy is installed and that the required process("The Web Management Service") is started.)
This error indicates that you cannot connect to the server. Make sure the service URL is correct,firewall and network settings on this computer and on the server computer are configured properly,and the appropriate services have been started on the server.
Error details:
Could not connect to the destination computer ("deployserver"). On the destination computer,
make sure that Web Deploy is installed and that the required process
("The Web Management Service") is started.
Unable to connect to the remote server
A connection attempt failed because the connected party did not properly respond after a period
of time, or established connection failed because connected host has failed to respond 192.168.0.211:8172
このエラーで強調表示されているテキスト (および次のセクションの他のエラー) は、問題の性質を理解するための鍵となります。 Web 配置がサーバーから応答を受け取らなかったため、Visual Studio では、考えられるいくつかの原因を区別できません。 その結果、試すべきことが列挙されています。
Web 管理サービスはインストールされていますか?
IIS サーバーで、インターネット インフォメーション サービス (IIS) マネージャーを開きコンピューター名ノードを選択します。 Features ビューで、Management セクションまで下にスクロールし、次のアイコンを探します。
存在しない場合は、 ロール サービスの追加 ダイアログを使用して管理サービスをインストールする必要があります。 Products タブから Web プラットフォーム インストーラーを使用してインストールすることもできます。左側の列で Server を選択し、IIS: Management Service を選択します。
Note
管理サービスをインストールした後は、自動的に開始されないため、開始する必要があります。 これを行うには、 Management Service アイコンをダブルクリックします。 Management Service ペインが表示されたら、右側の Actions ペインで Start を選択します。
サービスの URL は正しいか
既定では、Web 管理サービスはポート 8172 でリッスンしますが、この設定は変更できます。 使用されているポートを確認する最も簡単な方法は、前述のように Management Service ペインを開き、[接続] セクションで IP とポートの情報を確認することです。 ポートが 8172 以外に変更されている場合は、新しいポートがファイアウォール経由で許可されていることを確認し、新しいポートを使用するように Visual Studio の発行設定でサービス URL を更新する必要があります。
(403) 禁止されています
Web 管理サービスがインストールされると、Visual Studio で次のエラーが表示されることがあります。
Web deployment task failed.(Could not connect to the destination computer ("deployserver") using
the specified process ("The Web Management Service") because the server did not respond.
Make sure that the process ("The Web Management Service") is started on the destination computer.)
Could not connect to the destination computer ("deployserver") using the specified process
("The Web Management Service") because the server did not respond. Make sure that the process
("The Web Management Service") is started on the destination computer.
The remote server returned an error: (403) Forbidden.
このメッセージは誤解を招きます。 サーバーが応答しなかったことを示しますが、403 エラーは、Web 配置がサーバーに接続できたが、要求がアクティブに拒否されたことを示しています。 Web 管理サービスの HTTP ログは、要求がサーバーに到達したことを確認し、失敗した実際の要求に関する詳細を提供するのに役立ちます。 このログの既定の場所は %SystemDrive%\Inetpub\logs\WMSvc
です。 他の IIS ログと同様に、データはすぐにログに書き込まれるので、要求が表示されるまで数分待つか、Web 管理サービスを再起動してログをフラッシュする必要がある場合があります。
WMSVC
ログには、次のメッセージが表示されます。
2011-06-02 17:59:05 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 403 6 5 1669
ログ内の403
の後の6
はサブステータス コードであり、IP アドレスが拒否されたことを意味します。 IIS の状態コードとサブ状態コードの完全な一覧は、IIS の
管理サービスがリモート接続を許可するように構成されているか
これは 403.6 応答の原因として最も有力と考えられます。 Management Service アイコンをダブルクリックし、有効なリモート接続がオンになっていることを確認します。 変更を行うにはサービスを停止する必要があるため、完了したら必ず再起動してください。
Web 管理サービスは Windows ファイアウォール経由で許可されていますか?
Web 管理サービスをサーバーにインストールすると、受信ファイアウォール規則の名前は Web Management Service (HTTP Traffic-In) になります。 Start>AdministrativeTools>セキュリティが強化されたWindows ファイアウォールに移動して、この規則が有効になっていることを確認します。 [ バインド規則] を選択し 一覧から Web Management ルールを見つけます。 すべてのプロファイルでこれを有効にする必要があります。
サード パーティ製のファイアウォールを使用している場合は、ポート 8172 での受信接続が許可されていることを確認する必要があります。
管理サービスに対して IP 制限が構成されているか
403 エラーが発生する可能性があるもう 1 つの一般的な理由は、管理サービスがクライアントの IP を拒否するように構成されていることです。 既定では、リモート接続が許可されている限り、すべての IP を許可するように構成されています。 ip 制限を確認するには、 管理サービス アイコンをダブルクリックします。 構成済みの IP 制限規則は、IPv4 アドレス制限のページの下部にあります。
(404) 見つかりません
Web deployment task failed.(Could not connect to the destination computer ("deployserver").
On the destination computer, make sure that Web Deploy is installed and that the required process
("The Web Management Service") is started.
The requested resource does not exist, or the requested URL is incorrect.
Error details: Could not connect to the destination computer ("deployserver").
On the destination computer, make sure that Web Deploy is installed and that the required process
("The Web Management Service") is started.
The remote server returned an error: (404) Not Found.
404 エラーは、Web Deploy がサーバー上の Web 管理サービスに接続できたが、必要なものが見つからなかったことを示しています。 まず、Web デプロイが接続しようとしたリソースを確認します。 移行先サーバーの %SystemDrive%\Inetpub\logs\WMSvc の下にある Web 管理サービス ログを見ると、 WMSVC
ログに次のようなエントリが表示されます。
2011-05-12 15:21:50 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 404 7 0 1606
Msdeploy.axd は、Web 配置要求のハンドラーです。
Web 配置はインストールされているか
Web Deploy がインストールされていることを確認するには、Programs and Features コントロール パネルに移動し、インストールされているプログラムの一覧で microsoft Web Deploy 4.0 を探します。 存在しない場合は、 非公式のダウンロード ページからダウンロードしてインストール。 また、Web Deployment Agent Service (MsDepSvc) が実行されていることも確認してください。
IIS 7.0 Deployment Handler がインストールされているか
Web 配置がインストールされていても、このエラーが引き続き発生する場合は、Web 配置の IIS 展開ハンドラー 機能がインストールされていることを確認します。 プログラムと機能コントロール パネルで、Microsoft Web Deploy 4.0 を探し右クリックして Change を選択します。 表示されるウィザードで、最初のページで Next を選択し、2 番目のページで Change を選択します。
次へを選択してウィザードを完了します。 この変更を行った後、Web 管理サービスを再起動する必要があります。
(401) 許可されていません
Web 配置と Web 管理サービスが正しく構成されたら、ユーザーがコンテンツを更新できるように委任規則を設定する必要があります。 アクセス許可の問題については、Visual Studio に表示されるエラーがいくつかあります。 例えば次が挙げられます。
Web deployment task failed.(Connected to the destination computer ("deployserver")
using the Web Management Service, but could not authorize.
Make sure that you are using the correct user name and password, that the site you are connecting
to exists, and that the credentials represent a user who has permissions to access the site.
Make sure the site name, user name, and password are correct. If the issue is not resolved,
please contact your local or server administrator.
Error details:
Connected to the destination computer ("deployserver") using the Web Management Service,
but could not authorize. Make sure that you are using the correct user name and password,
that the site you are connecting to exists, and that the credentials represent a user who
has permissions to access the site.
The remote server returned an error: (401) Unauthorized.
WMSvc ログには、次のメッセージが表示されます。
2011-05-12 15:50:12 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 401 2 5 1653
2011-05-12 15:50:12 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 user1 192.168.0.203 - 401 1 1326 124
Visual Studio の出力で強調表示されている http 状態は、アクセス拒否エラーです。 エラー ログで強調表示されている Win32 の状態は、"ログオン失敗: 不明なユーザー名または無効なパスワード" にマップされるため、このエラーは単純なログオン エラーです。 ユーザーが認証されていても、発行に必要な権限がない場合、ログ エントリは次のようになります。
2011-05-12 15:55:38 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 401 2 5 0
このユーザーが発行できるようにするには、「web 配置ハンドラーの構成の手順に従って委任を設定する必要があります。
操作が承認されていません
アカウントがログインできても、コンテンツの公開に必要な権限が付与されていない場合は、次のエラー メッセージが表示されます。
Web deployment task failed. (Unable to perform the operation ("Create Directory") for the specified
directory ("bin"). This can occur if the server administrator has not authorized this operation for
the user credentials you are using.
WMSvc
ログには、これらの要求に対する HTTP 200 応答が表示されます。 さいわい、Web 配置 2.1 は Microsoft Web 配置サービス ログにも情報を書き込みます。 表示するには、イベント ビューアー (ローカル)>アプリケーションとサービス ログ>Microsoft Web Deploy を選択します。
この特定のエラーの場合、イベント ログには追加の詳細が含まれています (簡潔にするために切り捨てられます)。
User: DEPLOYSERVER\User1
Client IP: 192.168.0.203
Content-Type: application/msdeploy
Version: 8.0.0.0
MSDeploy.VersionMin: 7.1.600.0
MSDeploy.VersionMax: 7.1.1070.1
MSDeploy.Method: Sync
MSDeploy.RequestId: 50de0746-f10d-4640-9b3d-4ba773520e38
MSDeploy.RequestCulture: en-US
MSDeploy.RequestUICulture: en-US
Skip: objectName="^configProtectedData$"
Provider: auto, Path:
Tracing deployment agent exception. Request ID '50de0746-f10d-4640-9b3d-4ba773520e38'. Request Timestamp: '5/12/2011 9:18:12 AM'. Error Details:
Microsoft.Web.Deployment.DeploymentDetailedUnauthorizedAccessException: Unable to perform the operation ("Create Directory")
for the specified directory ("C:\inetpub\wwwroot\bin"). This can occur if the server administrator has not authorized this
operation for the user credentials you are using.
---> Microsoft.Web.Deployment.DeploymentException: The error code was 0x80070005. ---> System.UnauthorizedAccessException:
Access to the path 'C:\inetpub\wwwroot\bin' is denied.
at Microsoft.Web.Deployment.Win32Native.RaiseIOExceptionFromErrorCode(Win32ErrorCode errorCode, String maybeFullPath)
at Microsoft.Web.Deployment.DirectoryEx.CreateDirectory(String path)
at Microsoft.Web.Deployment.DirPathProvider.CreateDirectory(String fullPath, DeploymentObject source)
at Microsoft.Web.Deployment.DirPathProvider.Add(DeploymentObject source, Boolean whatIf)
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
このメッセージは、この特定のエラーに関してアクセス許可を付与する必要がある場所を示します。 Visual Studio で次のアクセス許可エラーが表示される場合もあります。
Web deployment task failed.((5/12/2011 11:31:41 AM) An error occurred when the request was processed on the remote computer.)
(5/12/2011 11:31:41 AM) An error occurred when the request was processed on the remote computer.
The server experienced an issue processing the request. Contact the server administrator for more information.
この特定のエラーでは多くの操作を実行できませんが、イベント ビューアーの Web 配置エラー ログを見ると、画像がより明確になります。
User: DEPLOYSERVER\User1
Client IP: 192.168.0.203
Content-Type: application/msdeploy
Version: 8.0.0.0
MSDeploy.VersionMin: 7.1.600.0
MSDeploy.VersionMax: 7.1.1070.1
MSDeploy.Method: Sync
MSDeploy.RequestId: 63b2f3d1-1817-444f-8280-9fa4f6f85d53
MSDeploy.RequestCulture: en-US
MSDeploy.RequestUICulture: en-US
Skip: objectName="^configProtectedData$"
Provider: auto, Path:
Tracing deployment agent exception. Request ID '63b2f3d1-1817-444f-8280-9fa4f6f85d53'. Request Timestamp: '5/12/2011 9:31:41 AM'. Error Details:
System.UnauthorizedAccessException: Attempted to perform an unauthorized operation.
at System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType type, String name, SafeHandle handle, SecurityInfos securityInformation, SecurityIdentifier owner, SecurityIdentifier group, GenericAcl sacl, GenericAcl dacl)
at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, SafeHandle handle, AccessControlSections includeSections, Object exceptionContext)
at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, AccessControlSections includeSections, Object exceptionContext)
at Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(String path)
at Microsoft.Web.Deployment.SetAclProvider.Add(DeploymentObject source, Boolean whatIf)
at Microsoft.Web.Deployment.DeploymentObject.Update(DeploymentObject source, DeploymentSyncContext syncContext)
at Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObject sourceObject)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject)
この出力から、 User1
にはセキュリティ情報を設定する権限がないことがわかります。 この場合、ユーザーはコンテンツに対する "変更アクセス許可" を持っていません。 コンテンツに対する "変更アクセス許可" を付与すると、問題が解決します。
その他
正常に発行した後で .NET 4.0 アプリケーションを参照できない場合は、.NET 4.0 が IIS に正しく登録されていない可能性があります。 その他の現象として、.NET 4.0 がインストールされていますが、IIS に .NET 4.0 アプリケーション プールまたはハンドラー マッピングがない場合があります。 この現象は、IIS がインストールされる前に .NET 4.0 がインストールされている場合に発生します。 この問題を解決するには、管理者特権でのコマンド プロンプトを起動し、次のコマンドを実行します。
%systemdrive%\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -iru