如何使用 C# 恢复 IIS 元数据库备份
-
19-09-2019 - |
题
我发现 Stack Overflow 问题描述了如何在 C# 中备份 IIS 配置数据库 这里, ,并且我已经成功地使用引用的代码使其工作 这里. 。但是,我在使用 C# 代码恢复这些备份(或者实际上在 IIS 中手动创建的任何备份)时遇到困难。
有谁知道如何做到这一点,或者是否可以做到?与备份本身不同,我在网上找不到任何这样的示例。
我尝试了以下代码,但收到错误 “调用目标已引发异常”
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
});
}
不隶属于 StackOverflow