Как восстановить резервную копию метабазы IIS с помощью C#
Я нашел вопрос о переполнении стека, описывающий, как сделать резервную копию метабазы IIS в C#, и мне удалось заставить его работать, используя код, на который есть ссылка. Однако у меня возникают трудности при восстановлении этих резервных копий (или даже любых резервных копий, созданных вручную в IIS) с использованием кода C#.
Кто-нибудь знает, как это сделать, или даже если это можно сделать? Я не смог найти никаких примеров этого в Интернете, в отличие от самой резервной копии.
Я пробовал следующий код, но получаю сообщение об ошибке "Исключение было сгенерировано целью вызова"
using (DirectoryEntry localhostIIS = new DirectoryEntry("IIS://LocalHost"))
{
localhostIIS.Invoke("Restore", new object[] { string.Empty, 0, 0});
}
Теперь, хотя я уверен, что я вызываю метод с неправильным именем и / или структурой объекта, я не смог найти правильный способ его вызова где-либо...
Кто-нибудь может указать мне правильное направление?
1 ответ
Я попробовал это с именованной резервной копией и заставил работать с некоторыми изменениями:
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
});
}