問題タブ [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 に答える
2056 参照

c# - AppDomainシャドウコピー参照されるアセンブリを含める

初めてシャドウコピーを試しています。私は次のコードを持っています:

実行可能ファイルは一時ディレクトリに問題なく到達しており、参照されているdllに到達するまで実行されています。プロジェクト全体で参照した14〜16個のdllがこの一時ディレクトリにコピーされていないため、アプリが爆発します。

私は何が欠けていますか?それらすべてを一時ディレクトリにもコピーするにはどうすればよいですか?

0 投票する
2 に答える
1931 参照

c# - AppDomainExecuteAssemblyファイルまたはアセンブリを読み込めませんでした

次のような別のアプリ(app2)をロードするアプリ(app1)があります。

その行を実行すると、次のエラーが発生します。

ファイルまたはアセンブリを読み込めませんでした。

App2にはFooへの参照があります。app1でFooへの参照を追加すると、機能します。問題は、app1がFooを参照したくないということです。App1の主な目的は、ネットワーク共有でapp2の新しいバージョンを検出し、app2をアンロードし、新しいバイナリをコピーしてから、上記の行を使用してapp2を再起動することです。その後、app1に古いFooが含まれている場合、app2は自身の実行ディレクトリでFooの代わりにそれを使用します。

app2のみがFooを参照し、app1がそのエラーなしでapp2をロードするようにするにはどうすればよいですか?

注:シャドウコピーを使用していますが、app1にFooへの参照がある場合に機能します。

0 投票する
1 に答える
3009 参照

windows - Windows VSS: 2 つのシャドウ コピーの違いは?

VSS API を使用してボリュームのシャドウ コピーを作成し、UNC パスを使用してそれらにアクセスしています。
2 つの連続する影の間で変更されたもののリストを取得することは可能ですか?

これを行う明白な方法は、ボリューム内のすべてのファイルを調べて変更を確認することですが、VSS の重要な機能の 1 つは、情報のデルタを保存し、何を保存するかだけを保存することであるため、これを行うより簡単な方法が必要です。変更されます。

0 投票する
1 に答える
639 参照

c# - C#: AppDomain ShadowCopyDirectories が空です

私はappdomainの概念が初めてです。ここでは、シャドウ コピーは参照しているアセンブリのコピーを作成すると述べていますが、ShadowCopyDirectories を確認すると空です。

これが私のコードです:

私は何かを逃しましたか?ありがとうございました

0 投票する
2 に答える
11357 参照

.net - デフォルトの AppDomain のシャドウ コピーを設定する正しい方法は何ですか

既定のAppDomainに特定のアセンブリのシャドウ コピーを使用させることはできますか? では、特定のディレクトリの既定の AppDomain 内でシャドウ コピーを有効にする実用的なソリューションについて説明しています。

基本的に、これらの単純な方法を使用するように指示されています。

しかし、ここで使用されているメソッドは古いものとしてマークされているため、同じことを達成する正しい方法は何なのか疑問に思っていました. 警告メッセージは、次のことを示唆しています。

代わりに AppDomainSetup.ShadowCopyDirectories の使用を調査してください

AppDomain には、このタイプのメンバーが呼び出されSetupInformation、この簡単な実装にたどり着く可能性があります。

残念ながら、これは効果がありません。問題は、現在の appdomain の AppDomainSetup を変更してシャドウ コピーを有効にする方法はありますか?

0 投票する
3 に答える
4634 参照

c# - 実行時に上書きできるように、MEF と ShadowCopying DLL

実行時にアセンブリを上書きできるように、アプリケーションが MEF プラグイン ディレクトリで DLL をロックするのを止めようとしています (実際には、MEF にオンザフライでアセンブリをリロードさせようとしているわけではないことに注意してください。次のアプリの起動時に問題ありません。コピーを行うためにアプリを停止する必要はありません)

以下のように、ロードされた mef アセンブリ用にシャドウ コピーされたアプリ ドメインを作成することで、これを実行しようとしています。

次に、このクラスの CompositionContainer を介して MEF コンポーネント カタログにアクセスします。ただし、コンポジション コンテナーはシャドウコピー ドメイン内でのみ初期化されるようです (これは理にかなっています)。これは、アプリケーション ドメインでは null であることを意味します。これを行うためのより良い方法があるかどうか、またはクロスドメインクエリを使用して MEF コンポーネントを取得する方法があるかどうか疑問に思っていました

0 投票する
2 に答える
594 参照

c - シャドウコピー内からハイブファイルへのRegLoadKey

シャドウコピーを作成していますが、を使用してそのシャドウコピーからレジストリハイブをマウントしたいRegLoadKey()ので、通常のレジストリ関数を使用してその内容を確認します。
これは通常、まったく機能しない特定のマシンを除いて、うまく機能します。

シャドウコピーを作成し、そのマウントポイントを取得し
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8
ます 。

この呼び出しは1009 - The configuration registry database is corrupt.

私が使用する場合、私はCreateFileW()そのパスを使用してこのファイルを正常に開くことができるので、それは間違いなくそこにあります。

シャドウコピーがレジストリライターで作成されていることを確認したので、それが問題になるとは思いません。
シャドウコピーを作成し、再起動後にこれを試してみても違いはありません。
これは一部のマシンでのみ発生します。ほとんどの場合、問題なく動作します。動作しないマシンの違いが何であるかわかりません。
マシンはWindows200864ビットです。

0 投票する
2 に答える
4894 参照

c# - c#シャドウコピーの例

リンクされたdllも使用して実行可能ファイルを更新する必要があります。

私はについて読んだことがAppDomainSetup.ShadowCopyFilesありますが、必要なことを行うための正しい手順を試すのに苦労しています

質問は次のとおりです。

  • 更新を通知するとき、または実行可能ファイルを起動するたびにのみ作成する必要があるシャドウコピー?
  • dllと.exeをコピーして更新する正しい手順は何ですか?
0 投票する
1 に答える
725 参照

deployment - app_offline.htm がコピーされてアクティブになった後 (シャドウ コピーがオフ)、Web サイトをデプロイすると bin/*.dll がロックされる

Web サイトの展開で問題が発生しています。シャドウ コピーは、以前の展開の問題とサイトの展開後にオフになります。

具体的には、展開時にapp_offline.htm、サイト/アプリケーションがオフラインであることをコピーして確認した後でも、ファイルbin/*.dllがロックされていることがよくあります。

appdomainシャドウ コピーをオフにしても、DLLがアンロードされたときに DLL のロックが解放されることを期待しapp_offline.htmます。

のコンテンツを削除しようとする直前に変更 ( への ) が取得されるのを防ぐことを目的とした一時的なweb.config見つかったを展開しようとしました 新しい をコピーした後、 一時停止することさえあります。Stack Overflowbin/bin/10sweb.config

アプリケーション プール (プロセス) が dll のロックの所有者であることをハンドル ユーティリティで確認したw3wp.exeので、これがファイルを削除/上書きできない理由であると想定しています。アプリプールを手動でリサイクルすると、解放され、問題なく展開できます。残念ながら、展開プロセスの一部として、app_offline をコピーして web.config を変更することは可能ですが、IISappcmd のリサイクルを実行することは (アクセス許可/グループ ポリシーの理由から) できないため、Web だけでこのロックを解放できる必要がありapp_offline.htmます。構成。

シャドウ コピーをオンに戻すと、この特定の問題は「解決」されますが、DLL でロックがまだ保持されている場合。しかし、問題を先延ばししているだけなのだろうかと心配しています。古いdllのロックがappdomain再度ロードされたときに解放されない限り?

プロセスIDをコピーしapp_offline.htmてもw3wp、ハードリサイクルのように変更されませんが、ロックされているappdomainものを解放する必要があるものをアンロードしていると思います。bin/ files

もう 1 つの興味深い点は、これは実稼働サーバーでのみ発生するように見えることです。ローカルまたは開発/ステージング サイトで再現することはできません。app_poolsまたはconfigとの構成の違いはないと思いますが、IISこれが原因でこの動作が発生する可能性があります。

また、明確にするためshadowCopyBinAssembliesに、この問題が発生することなく(同じ展開プロセスで)3年以上falseに設定されているため、最近起こった何かがこれを引き起こしたように感じますが、何が原因かわかりません.

これを解決する方法、または何が原因であるかについてのアイデアをありがとう。

(サーバーはIIS7またはだと思います7.5)