问题标签 [shadow-copy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
868 浏览

c++ - 无法使用 SQL Server VSS Writer 进行差异备份

我一直在尝试开发一种工具来使用 SQL Server VSS Writer 备份/恢复 MS SQL Server。我无法让差异备份工作!我只是好奇是否有人曾经使用 VSS 进行过差异备份。这是我一直在做的事情:

  1. 创建完整备份并存储文件和与之关联的备份组件文档。
  2. 更新数据库中的表。
  3. 通过将“ SetBackupState ”设置为VSS_BT_DIFFERENTIAL创建新备份
  4. 现在,当将现有组件添加到备份组件文档时,我在步骤 1 中从文档中找到组件的时间戳,然后使用“ SetPreviousBackupStamp ”调用它
  5. 现在拍摄快照后,我会检查每个组件并调用“ GetPartialFileCount ”API。这总是返回值 0。我假设如果现有组件发生变化,它应该给出一个大于 0 的值。

我在这里错过了什么吗?我们是否需要使用某些参数或其他东西来启动 SQL Server VSS Writer?我尝试了不同的配置,包括(Windows Server 2008/ SQL Server 2008)

0 投票
2 回答
544 浏览

asp.net - 在 ASP.NET 中使插件文件夹可写

MEF在基于插件的 ASP.NET 应用程序中使用。在复制到插件文件夹后,会自动加载File System Watcher与任何新插件的连接。Container.Refresh()

问题是当我想删除或替换加载的插件时。它被锁定,w3wp无法删除。我读过Shadow Copy但找不到好的例子或文章。

0 投票
1 回答
1314 浏览

c++ - 尝试运行卷影复制时出现运行时错误“在 vssapi.dll 中找不到过程条目”

代码编译良好,我已将 vssapi.lib 包含在链接器的附加依赖项中。

我收到此错误消息“在 vssapi.dll 中找不到 CreatevssbackupcomponentsInternal 过程入口点”

只有当我尝试在 Windows server 2003 或 Windows XP 上运行它时才会出现此错误。它在 Windows 7 上运行良好。

我将附上下面的代码,它是标准的卷影复制代码。

0 投票
1 回答
3115 浏览

c# - AppDomain 卷影复制不起作用(原始程序集被锁定)

这是我用来探测可用插件列表的一个小类:

path参数指向包含要加载的插件程序集的子目录。这个想法是使用启用了卷影复制的单独 AppDomain 加载它们。

这种情况下,因为 AppDomain 被快速卸载,所以影子复制并不是真正必要的,但是当我在我打算编写的下一个代码块中实际加载插件时,我想使用影子复制以便可以更新二进制文件苍蝇。我在这个类中启用了卷影复制作为测试,以确保我做对了。

显然我做的不对,因为当我在代码示例(即plugins = exts.ListPlugins())的注释行上中断调试器时,原始插件程序集被应用程序锁定!

看到我指定 AppDomain 加载的程序集应该被影子复制,为什么它们被应用程序锁定?

0 投票
3 回答
513 浏览

c++ - 在一个 C++ 项目中使用两个不同版本的 .lib 文件?

我正在研究卷影复制程序。我刚刚发现我需要使用一组不同的 .h 文件 (vsbackup.h) 和相关的 .lib 文件 (vssapi.lib) 来为 Windows XP 编译项目(与 Vista 和 7 相比)。这是由于 .h 文件中的一系列细微变化:在 XP 中,调用例如CreateVssBackupComponents()是对 API 的调用(只有 vsbackup.h 中的声明);较新的 vsbackup.h 将其更改为CreateVssBackupComponents() { CreateVssBackupComponentsInternal(); },当我使用较新的 .h 和 .lib 文件编译我的项目并在 XP 下运行程序时,它说

在 DLL“vssapi.dll”中找不到过程入口点“CreateVssBackupComponentsInternal”。

是否有可能将这两个不同的 lib 文件合并到一个项目中,这样我就不必编译两个不同版本的程序?

0 投票
3 回答
3966 浏览

c# - 查询 WMI 类 Win32_ShadowCopy 时初始化失败

在这些年的编程过程中,我从来没有在这个网站上发布过问题,但我遇到了很多以前在这里解决过的问题。然而,现在我遇到了一个我似乎无法找到答案的问题。

我正在创建一个应用程序,在该应用程序中我需要来自系统上 ShadowCopies 的信息。我试图通过使用 WMI(在 C# 中)来实现这一点。然而,这给了我一个“初始化失败”的异常。代码如下: ManagementScope scope = new ManagementScope("\\.\ROOT\cimv2");

每当到达 foreach 行时,就会引发 ManagementException 并显示消息“初始化失败”。我完全不知道为什么会这样。如果我使用完全相同的代码并更改 WMI 类(更改为 Win32_Processor/Win32_LogicalDisk/...),我不会收到此异常,并且 foreach 循环正常工作。我还注意到异常来自语句“searcher.Get();”。我已经在 Windows Server 2008 机器和 Windows 7 Enterprise 机器上尝试过这段代码,两者都产生相同的异常。

我也尝试过在 vb-script 中使用这个类并且效果很好。VBS代码:

我真的不知道是什么产生了这个异常,尤其是当我使用 VB 脚本时 WMI 类正在工作。有人看到我在这里做错了吗?任何帮助表示赞赏,如果您需要更多信息来解决此问题,请告诉我!

格雷茨,西蒙

//注意:我从http://include.wutils.com/wmi/ROOT%5Ccimv2/CIM_ManagedSystemElement/CIM_LogicalElement/Win32_ShadowCopy/cs-samples.html获得此代码

0 投票
1 回答
1717 浏览

c# - C# - 用于备份的卷影复制替代方案?

我在我的 C# 应用程序中实现了一个 RAMDisk,一切都很好,除了我需要定期备份内容,因为它是易失性的。我一直在与 AlphaVSS 争夺 Shadow Copy 备份一个星期,然后有人告诉我 VSS 在 RAMDisk 上不起作用。

RAMDisk 上的内容(Minecraft 的世界文件)非常小,但可能有数百个。其中大多数是 .dat 文件,大小只有几百字节,还有其他文件,每个文件大小为 2-8MB。

我昨天在这里发布了这个,建议的解决方案是使用 FileStream,并从中保存数据。我刚刚在另一个 Stack Overflow 问题上读到这对于二进制数据来说是一个可怕的想法,所以我正在寻找一种更好的方法来备份所有这些小文件,其中一些文件可能正在使用中。

0 投票
1 回答
1002 浏览

windows - Microsoft VSHADOW.EXE 卷影副本包含锁定的文件?

我一直在使用 VSS 编写备份程序,并从 Windows SDK 6.1 示例中的 VSHADOW.EXE 开始。它通常可以工作,但我很惊讶地看到某些文件仍被锁定在它创建的卷影副本中,例如

访问卷影副本中的这些文件(使用CreateFileExCopyFileEx或使用Total Commander或任何其他工具)通常会给我一个错误 32(该进程无法访问该文件,因为它正在被另一个进程使用)。它似乎是任意发生的。怎么可能?

我之前的编辑(事件日志消息)结果不是这个问题的核心,因为我修复了它但没有帮助。

0 投票
2 回答
4463 浏览

asp.net - ASP.Net 无法在 PRODUCTION 中创建/卷影复制

我们最近更新了一个相当大的 ASP.NET 网站(约 1500 次 alexa 流量排名)以使用在 Windows Server 2008 R2 上运行的 VS2010 和 .NET 4.0

从那以后,当我们部署站点的新版本时,我们偶尔会在这篇文章中注意到同样的错误: ASP.Net cannot create/shadow copy 错误消息是:Cannot create/shadow copy 'xxxx, Version=4.0.4301.26898, Culture=中立,PublicKeyToken=null' 当该文件已经存在时

但是,与该帖子不同的是,该错误仅发生在我们的生产环境中,并且仅在某些服务器上发生。

在我们发布新版本的代码后,我们会回收所有 AppPools 并开始出现错误。

进一步的 AppPool 回收似乎解决了这个问题,但是我真的很想知道我们如何首先避免这个问题?

0 投票
1 回答
1619 浏览

vb.net - VB.Net:如何显示文件的先前卷影副本版本以允许用户选择一个

我正在用 VB.Net 编写一个 Excel 文件恢复程序,它试图成为一个方便的地方来收集和访问Microsoft 推荐的方法。如果您对我可能很笨拙、充满错误且缺少足够的清理代码感兴趣,请访问:http: //pastebin.com/v4GgDteY。尽管我还没有测试过图形宏表恢复,但基本功能似乎可以工作。

我突然想到,如果 Shadow Copy Service 已打开并且存在以前的副本,Vista 和 Windows 7 用户可以从在我的应用程序中获得文件的以前版本列表中受益。我该怎么做呢?

我查看了很多网页,但发现不容易编写代码。我猜一种可能性是通过 shell 使用 vssadmin ,但这很麻烦。我只想显示一个对话框,如以前的版本属性表,并允许用户选择以前的版本之一。我想我可以通过以编程方式调用上下文菜单和“恢复以前的版本选择”来通过 shell 显示以前版本的属性表,但是我也希望能够为那些没有的 Vista Home Basic 和 Premium 用户提供列表即使显然以前的版本仍然存在,也无法访问该选项卡。此外,如果可能的话,我想为 XP 用户提供相同的功能,尽管我很确定 XP 只有系统文件在卷影副本中。

我查看了 Shadow Copy Service 上的 MSDN 并浏览了所有页面,还查看了 AlphaVSS 和 AlphaFS 以及所有评论。我有点猜测我需要使用 AlphaVss 和 AlphFS 并执行以下操作?

  1. 找出计算机上存在的快照/还原点列表。
  2. 挂载这些快照。
  3. 在已安装的卷中导航到用户想要恢复的 Excel 文件并列出这些路径。
  4. 有了方便的路径列表,与某种差异程序比较,文件的影子副本与原始文件。
  5. 拉出与恢复目标不同的那些卷影副本的最年轻或最旧版本(我认为这并不重要)。
  6. 列出发现不同的文件版本。

这看起来既麻烦又缓慢,但也许是最快的做事方式。我只需要一些确认,这是现在要走的路。