我发现Stack Overflow问题描述了如何在C#here中备份IIS元数据库,并且我已经成功地使用引用here的代码来实现它。但是,我很难使用C#代码恢复这些备份(或者实际上在IIS中手动创建的任何备份)。
有谁知道如何做到这一点,或者即使可以做到这一点?与备份本身不同,我无法在网上找到任何此类示例。
我尝试过以下代码,但收到错误'调用目标已抛出异常
using (DirectoryEntry localhostIIS = new DirectoryEntry("IIS://LocalHost"))
{
localhostIIS.Invoke("Restore", new object[] { string.Empty, 0, 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
});
}