Come ripristinare un backup della Metabase di IIS utilizzando C#
-
19-09-2019 - |
Domanda
Ho trovato l'Overflow dello Stack domanda che descrive come fare il backup della Metabase di IIS in C# qui, e mi sono riusciti ad ottenere che il lavoro con il codice di riferimento qui.Tuttavia, sto avendo difficoltà a ripristinare le copie di backup (o qualsiasi backup creati manualmente in IIS) utilizzando il codice C#.
Qualcuno sa come fare questo, o anche se si può fare?Non sono stato in grado di trovare alcuni esempi di questo sul web, a differenza del backup stesso.
Ho provato il seguente codice, ma visualizzato il messaggio di errore 'Eccezione generata dalla destinazione di una chiamata'
using (DirectoryEntry localhostIIS = new DirectoryEntry("IIS://LocalHost"))
{
localhostIIS.Invoke("Restore", new object[] { string.Empty, 0, 0});
}
Ora, mentre io sono sicuro che sto chiamando il metodo con il nome sbagliato e/o la struttura dell'oggetto, non sono stato in grado di trovare la corretto modo di chiamare ovunque....
Qualcuno può per favore mi punto nella giusta direzione?
Soluzione
Ho provato con un backup con nome e ottenuto questo lavoro con alcune modifiche:
const uint MD_BACKUP_HIGHEST_VERSION = 0xfffffffe;
const uint MD_BACKUP_NEXT_VERSION = 0xffffffff;
const uint MD_BACKUP_SAVE_FIRST = 2;
using(DirectoryEntry de = new DirectoryEntry("IIS://Localhost"))
{
// Backup using the next version number (MD_BACKUP_NEXT_VERSION)
de.Invoke("Backup", new object[] {
"test-backup",
MD_BACKUP_NEXT_VERSION,
MD_BACKUP_SAVE_FIRST
});
// Restore the highest version number (or specify the specific version)
de.Invoke("Restore", new object[] {
"test-backup",
MD_BACKUP_HIGHEST_VERSION,
0
});
}