< CustomMetaData > informatie over IIS-site wordt niet verwijderd tijdens het verwijderen van de site via programmacode

Symptomen

Overweeg het volgende scenario:

  • U verwijderen een site met behulp van gesprekken of de beheerde API's die worden gebruikt door binaire Microsoft.Web.Administration appcmd opgenomen .

  • U maakt een nieuwe site in Internet Information Services (IIS) 7.5 of hoger.

  • De nieuwe site gebruikt nog steeds de oudere metagegevens van de site verwijderd.

In dit scenario treedt onverwacht gedrag op wanneer u probeert toegang te krijgen tot de nieuwe site. Bijvoorbeeld, verschijnt een foutbericht 'HTTP 503 – Service niet beschikbaar' wordt weergegeven in uw webbrowser.

Oorzaak

Het probleem treedt op wanneer een bewerking voor een bestaande website in IIS programmatisch wordt uitgevoerd met behulp van appcmd opgenomen of Microsoft.Web.Administration APIs en als de site oudere eigenschappen die zijn gedefinieerd in het element < CustomMetaData > configuratie van het bestand ApplicationHost.config van de IIS-server heeft. In dit scenario wordt de informatie in de code < CustomMetaData > die relevant is voor de site niet verwijderd. Als u een nieuwe site met dezelfde ID na de bewerking delete is gemaakt, worden deze nieuwe site gekoppeld aan de bestaande eigenschappen van de oude site.

Oplossing

De IIS-beheerconsole kunt u de website in plaats van het aanroepen van appcmd opgenomen of Microsoft.Web.Administration verwijderen. Deze methode zorgt ervoor dat als er aangepaste oude eigenschappen die zijn gekoppeld aan de website die u probeert te verwijderen, ze ook worden verwijderd uit het IIS-configuratiebestand (ApplicationHost.config). Hierdoor wordt voorkomen dat deze eigenschappen onverwacht wordt gekoppeld aan een nieuwe website die u maakt op dezelfde server, dat gebruikmaakt van de ID van de oude site verwijderd.

Als u moet de site via een programma om een reden verwijderen en de IIS-beheerconsole niet gebruiken, kunt u toevoegen een van de twee manieren om ervoor te zorgen dat ook de informatie op de oude eigenschappen die is gekoppeld aan de site door middel van het element < CustomMetaData > is verwijderd.

Oplossing 1: Appcmd opgenomen opdrachten gebruiken

Als u van appcmd opgenomen gebruikmaakt om de site te verwijderen, kunt u vervolgens de volgende opdracht voor het verwijderen van oude eigenschappen die de site hebben gehad in de IIS-configuratie uitvoeren:

Appcmd clear config -section:customMetadata -[path='LM/W3SVC/<SiteID>']
Opmerking de parameter < id > vervangen door de id van de site die u zojuist hebt verwijderd met behulp van opdrachten appcmd opgenomen .

Tijdelijke oplossing 2: Gebruik Microsoft.Web.Administration aanroepen

Als u een beheerde API-aanroepen naar Microsoft.Web.Administration te verwijderen van de website gebruikt, kunt u de volgende code toevoegen nadat de website is ook uit de oude eigenschappen in het element < CustomMetaData > van de IIS-configuratie verwijderd:

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);
}
}


Opmerking  De variabele "site" staat voor de website die u zojuist hebt verwijderd met behulp van de APIs Microsoft.Web.Administration.

Meer hulp nodig?

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Microsoft insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagenten.

×