4

バックグラウンド:

当社の内部ユーザーは、10 ~ 20 台の Windows ターミナル サーバーで .Net プログラムを実行しています。実行可能ファイルはすべて、Windows 2003 を実行している中央ファイル サーバーに格納されています。一部のターミナル サーバーは Windows 2003 を実行しており、一部は 2008 を実行しています。

問題:

プログラムの 1 つの新しいバージョンをリリースするとき、ロックされている可能性のあるファイル (EXE、DLL など) の名前を変更し、新しいバージョンのファイルを適切な場所にコピーします。Windows 2008 ターミナル サーバーの導入を開始するまで、これは問題なく機能していました。現在、2008 WTS のいずれかのユーザーがプログラムを実行している場合、ファイルは名前を変更することさえできないようにロックされます。

質問

  • ロックされたファイルの名前を変更する方法はありますか?

  • 実行中に EXE ファイルをロックする 2008 の新機能を無効にする方法はありますか?

  • より良い解決策はありますか?

4

3 に答える 3

3

私たちの問題は、「 Opportunistic Locking」と呼ばれる Windows ファイル共有の新機能が原因であることが判明しました。現在、両方のサーバーが 2008 の場合、この機能をオフにすることはできません。

現在、Microsoft が他のソリューションを探しているケースが開かれており、ラウンドに取り組んでいます。現時点では、DFS の使用に傾いています。

于 2010-08-17T16:07:19.480 に答える
3

あまり。ファイルがロックされている場合、そのファイルはロックされており、ロックを保持しているプロセスがファイルを解放するか、そのユーザーのネットワーク共有接続が切断されない限り、そのファイルに対して多くのことを行うことはできません。

ネットワーク共有から実行可能ファイルを実行する代わりに、ClickOnce配置に切り替える必要があります。あなたが説明した更新の問題は別として、ネットワーク共有から実行すると、コード アクセス セキュリティに影響があり、アプリケーションの初期ロードにパフォーマンスの影響があります。

于 2010-07-29T17:35:26.883 に答える
1

一般に、最初の Windows NT 3.1 以降のすべての以前のバージョンの Windows NT とまったく同じように、Windows 2008 ターミナル サーバーでロックされたファイルの名前を変更しても問題はありません。

ファイルの名前変更に使用するプログラムに問題がある可能性があります。古いオペレーティング システムではこれを Explorer で直接行うことができましたが、後でそれ以上行うことはできません。ただし、ファイルの名前を変更することは可能ですCMD.EXE。起動してコマンドcmd.exeを試すだけです。rename

于 2010-07-29T17:37:05.417 に答える