IIS サイトに関連付けられている < CustomMetaData > の情報は、プログラムのサイトを削除中に削除されていません。

現象

次のような状況を考えます。

  • Appcmd Microsoft.Web.Administration バイナリが公開されているマネージ Api への呼び出しを使用してサイトを削除するとします。

  • サイトを作成する、新しいインターネット インフォメーション サービス (IIS) 7.5 またはそれ以降です。

  • 新しいサイトには、削除されたサイトの既存のメタデータが使用されます。

このシナリオでは、新しく作成されたサイトにアクセスしようとするときに予期しない動作が発生します。などの web ブラウザーで「HTTP 503-サービスは利用できません」エラー メッセージが表示することがあります。

原因

Appcmdまたは Microsoft.Web.Administration Api とサイトが IIS サーバーの ApplicationHost.config ファイルの < CustomMetaData > の構成要素で定義されている従来のプロパティを使用してプログラムを使用して IIS の既存の web サイトの削除操作を実行すると、問題が発生します。このシナリオでは、< CustomMetaData > タグには、サイトに関連する情報は削除されません。削除操作の後、同じ ID を持つ新しいサイトが作成されると、この新しいサイトは、古いサイトの古いプロパティに関連付けられてなります。

解決策

Appcmdまたは Microsoft.Web.Administration に対して呼び出しを行うのではなく web サイトを削除するのには IIS 管理コンソールを使用することができます。このメソッドは、削除しようとしている web サイトに関連付けられているカスタムの古いプロパティがある場合は、それらも削除されることから IIS 構成ファイル (ApplicationHost.config) ことを確認します。これは、ため、これらのプロパティは、以前削除されたサイトの ID を再利用するサーバーと同じサーバーに作成する新しい web サイトに関連付けが予期せずできなくなります。

何らかの理由でプログラムを使用してサイトを削除する必要があり、IIS マネージャー コンソールを使用できない場合、は、< CustomMetaData > 要素を使用してサイトに関連付けられている従来のプロパティの情報も削除するかどうかを確認するのには 2 つの回避策のいずれかを追加できます。

Appcmd コマンドを使用して回避方法 1:

サイトを削除するのには、 appcmdを使用する場合、IIS の構成でサイトがあったすべての古いプロパティを削除するのには次のコマンドを実行できます。

Appcmd clear config -section:customMetadata -[path='LM/W3SVC/<SiteID>']
メモでは、 appcmdコマンドを使用して削除するサイトの識別子を使用して < SiteID > パラメーターを交換してください。

Microsoft.Web.Administration への呼び出しを使用する回避策 2。

Web サイトを削除するのには Microsoft.Web.Administration のマネージ API 呼び出しを使用する場合も、IIS の構成の < CustomMetaData > 要素に含まれている古いプロパティをオフにする web サイトが削除された後、次のコードを追加できます。

string path = "LM/W3SVC/" + site.Id.ToString(CultureInfo.InvariantCulture);string pathWithSlash = path + "/";
for (int i = customMetadata.Count - 1; i >= 0; i--) {
ConfigurationElement metadata = customMetadata[i];
string key = (string)metadata["path"];
if (key != null &&
(
key.Equals(path, StringComparison.OrdinalIgnoreCase) ||
key.StartsWith(pathWithSlash, StringComparison.OrdinalIgnoreCase))
)
{
customMetadata.RemoveAt(i);
}
}


ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

フィードバックをお送りいただきありがとうございます!

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×