Как восстановить резервную копию метабазы IIS с помощью C#

StackOverflow https://stackoverflow.com/questions/2222646

Вопрос

Я нашел вопрос о переполнении стека, описывающий, как создать резервную копию метабазы IIS на C# здесь, и мне удалось заставить это работать , используя код , на который ссылается здесь.Однако у меня возникают трудности с восстановлением этих резервных копий (или вообще любых резервных копий, созданных вручную в IIS) с использованием кода C #.

Кто-нибудь знает, как это сделать, или даже можно ли это сделать?Я не смог найти никаких примеров этого в Интернете, в отличие от самой резервной копии.

Я попробовал следующий код, но получаю сообщение об ошибке "Исключение было сгенерировано целью вызова"

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

Теперь, хотя я уверен, что вызываю метод с неправильным именем и / или структурой объекта, я не смог найти правильный способ назвать это где угодно....

Кто-нибудь, пожалуйста, может указать мне правильное направление?

Это было полезно?

Решение

Я попробовал это с именованной резервной копией и заставил это работать с некоторыми изменениями:

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
  });
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top