Question

J'ai trouvé la question Stack Overflow décrivant comment sauvegarder la métabase IIS en C # ici . Cependant, j'ai pas restaurer ces sauvegardes (ou même des sauvegardes créées manuellement dans IIS) en utilisant le code C #.

Quelqu'un sait comment faire, ou même si cela peut être fait? Je ne l'ai pas été en mesure de trouver des exemples de ce sur le web, contrairement à la sauvegarde elle-même.

J'ai essayé le code suivant, mais recevoir l'erreur « exception a été levée par la cible d'un appel »

using (DirectoryEntry localhostIIS = new DirectoryEntry("IIS://LocalHost"))
{
   localhostIIS.Invoke("Restore", new object[] { string.Empty, 0, 0});
}

Maintenant, alors que je suis sûr que j'appelle la méthode avec le mauvais nom et / ou la structure de l'objet, je ne l'ai pas été en mesure de trouver le correct façon de l'appeler partout .. ..

Quelqu'un peut-il s'il vous plaît me diriger dans la bonne direction?

Était-ce utile?

La solution

J'ai essayé avec une sauvegarde du nom et a obtenu que cela fonctionne avec quelques modifications:

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
  });
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top