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?

È stato utile?

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
  });
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top