1

SharePoint では、フィーチャー レシーバーを使用して、フィーチャーがインストール/アンインストールされたときにいくつかのアクションを実行できます。

フィーチャー レシーバーは OWSTIMER サービスから実行され、プロセスは大まかに

  • .wsp (cab ファイル) を解凍して調べる
  • .dll は bin/gac に移動されます
  • マニフェストでマークされた機能レシーバーは、サービスによって呼び出されます (GAC でのみ可能)。

ただし、OWSTIMER は、フィーチャー レシーバーを含む dll でハンドルを開いたままにします。

つまり、機能をアンインストールすると、Fusion は dll を c:\windows\temp\ ディレクトリに移動し、引き続き参照を保持します。(詳細はこちらこちら

次に、新しいバージョンをインストールしようとすると (アセンブリ ファイルのバージョンは異なりますが、アセンブリのバージョンは同じままにする必要があります)、OWSTIMER は OLD 機能レシーバーを実行します。

OWSTIMER サービスを再起動することでこの発生を停止できますが、多くの Web サーバーが存在する可能性がある実稼働ファーム環境では実用的ではありません。

回避策を知っている人はいますか?

4

2 に答える 2

0

機能の交換の間にiisresetを実行します。

はい、すべてのWebアプリを停止しますが、それが停止を計画している理由です/時間外に実行します。そして、プロセスが開発マシンで十分にリハーサルされていることを確認してください。

于 2011-02-18T23:59:23.503 に答える
0

回避策はありませんが、多くのサーバーがある実稼働環境では、GAC から DLL を手動で GAC したり、GAC を解除したりしないでください。

機能アーキテクチャを介して展開する場合、SharePoint が自動的にこれを処理します。

つまり、ファーム内の複数のサーバー間で Windows サービス (OWSTIMER や IIS を含む) の開始/停止を同期する必要がある場合は、使用するバッチ スクリプトを記述するだけで簡単に実行できます。

SC \\SERVER1 STOP W3SVC
SC \\SERVER1 STOP SPTIMERV4
SC \\SERVER2 STOP W3SVC
SC \\SERVER2 STOP SPTIMERV4

次に、次の方法で再起動します。

SC \\SERVER1 START SPTIMERV4
SC \\SERVER1 START W3SVC
SC \\SERVER2 START SPTIMERV4
SC \\SERVER2 START W3SVC
于 2013-11-25T18:43:38.153 に答える