問題タブ [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.
c++ - SQL Server VSS Writer を使用して差分バックアップを作成できない
SQL Server VSS Writer を使用して MS SQL Server のバックアップ/復元を行うツールを開発しようとしています。差分バックアップが機能しません。VSS を使用して差分バックアップを作成したことがある人がいるかどうかに興味があります。これが私がやっていることです:
- 完全バックアップを作成し、ファイルとそれに関連付けられたバックアップ コンポーネント ドキュメントを保存します。
- データベース内のテーブルを更新します。
- ' SetBackupState ' をVSS_BT_DIFFERENTIALに設定して、新しいバックアップを作成します。
- ここで、既存のコンポーネントをバックアップ コンポーネント ドキュメントに追加するときに、手順 1 でドキュメントからコンポーネントのタイム スタンプを見つけ、「 SetPreviousBackupStamp」でそれを呼び出します。
- スナップショットを取得したら、各コンポーネントを調べて、' GetPartialFileCount ' API を呼び出します。これは常に値 0 を返します。既存のコンポーネントに変更がある場合は、0 より大きい値を与える必要があると想定しています。
ここで何か不足していますか?特定のパラメーターなどを使用して SQL Server VSS Writer を開始する必要がありますか? (Windows Server 2008 / SQL Server 2008)を含むさまざまな構成を試しました
asp.net - プラグインフォルダーをASP.NETで書き込み可能にする
MEF
プラグインベースのASP.NETアプリケーションで使用しています。File System Watcher
新しいプラグインでの配線Container.Refresh()
は、プラグインフォルダにコピーされると自動的にロードされます。
問題は、ロードされたプラグインを削除または置換したい場合です。によってロックされてw3wp
おり、削除できません。読んだのですShadow Copy
が、良い例や記事が見つかりません。
c++ - ボリューム シャドウ コピーを実行しようとすると、「vssapi.dll にプロシージャ エントリが見つかりません」というランタイム エラーが発生する
コードは正常にコンパイルされ、リンカーの追加の依存関係に vssapi.lib が含まれています。
「CreatevssbackupcomponentsInternal プロシージャ エントリ ポイントが vssapi.dll に見つかりませんでした」というエラーが表示されます。
このエラーは、Windows Server 2003 または Windows XP で実行しようとした場合にのみ発生します。Windows 7 で問題なく動作します。
以下にコードを添付します。これは標準のシャドウ コピー コードです。
c# - AppDomainシャドウコピーが機能しない(元のアセンブリがロックされている)
利用可能なプラグインのリストを調べるために使用している小さなクラスは次のとおりです。
パラメータはpath
、ロードするプラグインアセンブリを含むサブディレクトリを指します。アイデアは、シャドウコピーが有効になっている別のAppDomainを使用してそれらをロードすることです。
この場合、AppDomainがすぐにアンロードされるため、シャドウコピーは実際には必要ありませんが、作成するコードの次のブロックでプラグインを実際にロードするときに、シャドウコピーを使用して、バイナリを更新できるようにします。はえ。このクラスでシャドウコピーを有効にして、正しく実行されていることを確認しました。
コードサンプル(つまり)のコメント行でデバッガーに割り込むとplugins = exts.ListPlugins()
、元のプラグインアセンブリがアプリケーションによってロックされるため、正しく実行されていないようです。
AppDomainによってロードされたアセンブリをシャドウコピーする必要があることを指定しているのに、なぜそれらはアプリケーションによってロックされているのですか?
c++ - 1つのC++プロジェクトで2つの異なるバージョンの.libファイルを使用しますか?
ボリュームシャドウコピープログラムに取り組んでいます。Windows XP用のプロジェクトをコンパイルするには(Vistaおよび7と比較して)、別の.hファイルのセット(vsbackup.h)および関連する.libファイル(vssapi.lib)を使用する必要があることがわかりました。これは、.hファイルの一連の微妙な変更によるものです。XPでは、APIへの呼び出しなどCreateVssBackupComponents()
の呼び出し(vsbackup.hには宣言のみがありました)。最近のvsbackup.hはこれをに変更CreateVssBackupComponents() { CreateVssBackupComponentsInternal(); }
し、新しい.hファイルと.libファイルを使用してプロジェクトをコンパイルし、XPでプログラムを実行すると、
プロシージャエントリポイント「CreateVssBackupComponentsInternal」がDLL「vssapi.dll」に見つかりませんでした。
これらの2つの異なるlibファイルを1つのプロジェクトに組み込んで、2つの異なるバージョンのプログラムをコンパイルする必要がないようにする可能性はありますか?
c# - WMI クラスの Win32_ShadowCopy を照会する際の初期化エラー
何年にもわたってプログラミングを行っている間、この Web サイトに質問を投稿したことはありませんが、以前にここで対処されていた多くの問題に遭遇しました。しかし今、私は答えが見つからないように見える問題に遭遇しました。
システム上の 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スクリプトで使用しようとしましたが、うまくいきました。VBS のコード:
特に、VB スクリプトを使用しているときに WMI クラスが機能しているため、この例外の原因についてはまったくわかりません。ここで私が間違っていることを誰かが見ていますか? この問題を解決するためにさらに情報が必要な場合は、お知らせください。
グリーツ、サイモン
c# - C# - バックアップ用のボリューム シャドウ コピーの代替手段?
RAMDisk を C# アプリケーションに実装しましたが、内容が揮発性であるため定期的にバックアップする必要があることを除けば、すべて順調に進んでいます。私は 1 週間、シャドウ コピーのバックアップのために AlphaVSS と格闘してきましたが、VSS は RAM ディスクでは機能しないと誰かから連絡がありました。
RAMDisk (Minecraft のワールド ファイル) にあるコンテンツは非常に小さいですが、何百もの存在する可能性があります。それらの大部分は、サイズがわずか数百バイトの .dat ファイルであり、それぞれ 2 ~ 8 MB の他のファイルがあります。
これについて昨日投稿したHere、提案された解決策は、FileStreamを使用して、そこからデータを保存することでした。別のスタック オーバーフローの質問で、これはバイナリ データに対する恐ろしい考えであると読んだばかりなので、これらの小さなファイルをすべてバックアップするためのより良い方法を探しています。
windows - Microsoft VSHADOW.EXE シャドウ コピーにロックされたファイルが含まれていますか?
私は VSS を使用してバックアップ プログラムを作成しており、Windows SDK 6.1 サンプルの VSHADOW.EXE から始めました。通常は動作しますが、次のような特定のファイルが作成されたシャドウ コピー内にまだロックされていることに驚きました。
シャドウ コピーでこれらのファイルにアクセスすると(または、CreateFileEx
Total Commanderまたはその他のツールを使用して)、通常、エラー 32 (別のプロセスによって使用されているため、プロセスはファイルにアクセスできません) が表示されます。勝手に発生するようです。それはどうしてですか?CopyFileEx
私の以前の編集 (イベント ログ メッセージ) は、この問題の核心ではないことが判明しました。
asp.net - ASP.Net は本番環境で作成/シャドウ コピーを実行できません
最近、Windows Server 2008 R2 上で動作する VS2010 および .NET 4.0 を使用するために、かなり大規模な ASP.NET Web サイト (〜 1500 番目の alexa トラフィック ランキング) を更新しました。
それ以来、サイトの新しいバージョンを展開すると、この投稿で同じエラーに気付くことがありました: ASP.Net は作成/シャドウ コピーを実行 できません エラー メッセージは次のとおりです: 'xxxx, Version=4.0.4301.26898, Culture= を作成/シャドウ コピーできませんニュートラル、PublicKeyToken=null' そのファイルが既に存在する場合
ただし、その投稿とは異なり、エラーは実稼働環境と一部のサーバーでのみ発生しています。
コードの新しいバージョンを出荷した後、すべての AppPools をリサイクルすると、エラーが発生し始めます。
さらに AppPool をリサイクルすると問題が解決するようですが、そもそもこの問題を回避する方法を知りたいですか?
vb.net - VB.Net:ユーザーが1つを選択できるようにするファイルの以前のシャドウコピーバージョンを表示する方法
私はVB.Netを使用してExcelファイル回復プログラムを作成しています。これは、 Microsoftが推奨する方法を収集してアクセスするのに便利な場所を目指しています。私のおそらく不器用で、エラーがいっぱいで、十分なクリーンアップコードがないことに興味がある場合は、ここにあります:http: //pastebin.com/v4GgDteY。グラフマクロテーブルのリカバリはまだテストしていませんが、基本的な機能は機能しているようです。
シャドウコピーサービスがオンで、以前のコピーがある場合、VistaおよびWindows7のユーザーはアプリケーション内のファイルの以前のバージョンのリストを提供されることで恩恵を受けることができると思いました。どうすればよいですか?
私はたくさんのウェブページを見ましたが、簡単にコードをベビーベッドに入れることができませんでした。私が推測する1つの可能性は、シェルを介してvssadminを使用することですが、それはかなり面倒です。以前のバージョンのプロパティシートのようなダイアログボックスを表示して、ユーザーが以前のバージョンの1つを選択できるようにしたいだけです。プログラムでコンテキストメニューと[以前のバージョンの選択を復元]を呼び出すことで、シェルを介して以前のバージョンのプロパティシートを表示できたと思いますが、VistaHomeBasicおよびPremiumユーザー向けのリストも提供できるようにしたいと思います。以前のバージョンがまだ存在しているように見えても、そのタブにアクセスできます。さらに、可能であれば、XPユーザーに同じ機能を提供したいと思いますが、XPではシステムファイルのみがシャドウコピーに含まれていると確信しています。
Shadow Copy ServiceでMSDNを確認し、すべてのページを確認しました。また、AlphaVSSとAlphaFS、およびすべてのコメントも確認しました。AlphaVssとAlphFSを使用して、次のことを行う必要があると思いますか?
- コンピューターに存在するスナップショット/復元ポイントのリストを確認します。
- それらのスナップショットをマウントします。
- マウントされたボリューム内で、ユーザーが回復したいExcelファイルに移動し、それらのパスのリストを作成します。
- パスのリストが手元にあるので、ある種のdiffプログラムと比較して、ファイルのシャドウコピーを元のファイルと比較してください。
- リカバリターゲットとは異なるシャドウコピーの最も若いバージョンまたは最も古いバージョン(重要ではないと思います)を引き出します。
- 異なることが判明したファイルのバージョンをリストします。
これは面倒で遅いように見えますが、おそらく最も速い方法です。私は今行く方法であるいくつかの確認が必要です。