私の SharePoint ステージング環境には、非常に奇妙な状況があります。最近、新しい SharePoint 2010 サーバー (単一の WFE + DB サーバー) を立ち上げ、既存の環境からバックアップされたコンテンツ データベースを接続しました。新しい Web アプリケーションを作成し、接続されたコンテンツ データベースを参照しました。すべてのサイト コレクション、サイト、リストなどが表示され、問題はないように見えました。
データベースを移動する前に、いくつかのカスタム コンテンツ タイプを既存の環境に展開しており、それらのコンテンツ タイプをアップグレードしたいと考えていました。具体的には、(XML ではなくコードを使用して) イベント レシーバーをコンテンツ タイプにアタッチし、それらのイベント レシーバーが指すアセンブリ バージョンを更新する必要がありました。そのため、通常のコード (フィーチャー レシーバーの一部) を実行してイベント レシーバーを削除しましたが、驚いたことに、レシーバーは残っていました。
この状況を改善するために、各サイト コレクションのルート サイトにあるすべてのコンテンツ タイプ (SPWeb.ContentTypes) を反復処理して削除し、各コンテンツ タイプで SPContentType.Update(true) を呼び出すコンソール アプリケーションを作成しました。Update の呼び出しから返されるエラーはありませんが、さらに驚いたことに、SharePoint はイベント レシーバーが接続されていることを報告します。
必死の最後の努力で、コンテンツ データベースにアクセスし (スナップショットを取得した後、これは本番ではなくステージングであることを忘れないでください)、問題のあるレシーバーを EventReceivers テーブルから手動で削除しました。少なくとも何らかの効果があるはずだと考えました。残念ながら、SharePoint はまだ受信者が存在すると報告しています。
コンテンツ タイプのイベント レシーバーでこのような種類のアップグレードを常に実行していますが、他の SharePoint ファームでこの問題に遭遇したことはありません。それは環境問題のように聞こえますか?コンテンツ データベースの移動が原因である可能性はありますか? 私たちはこの時点で完全に困惑しているので、どんな助けもいただければ幸いです。