我们有几个在后端的FGDB上运行的高使用率生产Web应用程序。FGDB每晚都会被清除并用新数据重建。我们有一个基于AGSSOM编写的.NET控制台应用程序,该应用程序在更新过程运行时停止了服务。看看AGSSOM,它非常漂亮。在删除之前,这里使用一些C#来备份当前FGDB:
// Only archive it FGDB already exists, if this is first run, then nothing to archive
if (Directory.Exists(String.Concat(c.fgdbDir, @"\", kvp.Key[0], ".gdb")))
{
c.msg = String.Concat(Environment.NewLine, "Archiving data for ", kvp.Key[0], " - ",
DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt"));
Messaging.Log(c.msg, c.lw);
// Create the FGDB folder in archive dir if not already there
if (!Directory.Exists(String.Concat(c.fgdbArchiveDir, @"\", kvp.Key[0], ".gdb")))
{
Directory.CreateDirectory(String.Concat(c.fgdbArchiveDir, @"\", kvp.Key[0], ".gdb"));
// Now copy from clips to archive
foreach (FileInfo fi in source.GetFiles())
{
fi.CopyTo(System.IO.Path.Combine(target.ToString(), fi.Name), true);
}
}
}
它仅使用Directory.CreateDirectory和FileInfo.CopyTo复制FGDB-Windows将FGDB视为另一个文件夹。像冠军一样工作。然后,在更新过程完成之后,我们使用基于AGSSOM的应用程序再次启动服务。