SharePoint 環境で発生する DCOM エラーについて

SharePoint 2007 環境でイベントログにイベント ID:10016 の DCOM に関するエラーが出力されることがあります。


このエラーは、SharePoint 2007 の Web アプリケーションに割り当てているアプリケーションプール ID に対して、CLSID {61738644-F196-11D0-9953-00C04FD919C1} および APPID {61738644-F196-11D0-9953-00C04FD919C1} の COM サーバーアプリケーションに対するローカルアクティブ化のアクセス許可を与えることができないという内容のエラーです。


この現象を解消するためには、以下の手順を実施します。

  1. コンポーネントサービスを起動する。
  2. [コンピュータ] - [マイ コンピュータ] - [DCOM の構成] を開いて、[IIS WAMREG admin Service] を右クリックして、[プロパティ] を選択する。
  3. [セキュリティ] タブを選択する。
  4. [起動とアクティブ化のアクセス許可] の [編集] ボタンをクリックする。
  5. [追加] ボタンからアプリケーションプール ID を追加して、[ローカルからの起動] と [ローカルからのアクティブ化] の2つの許可にチェックをつける。
  6. [OK] ボタンをクリックする。
  7. [OK] ボタンをクリックする。

Windows Server 2008 R2 の場合

Windows Server 2008 R2SharePoint 2007 環境を構築したときにも同様の DCOM エラーが発生したので、上記手順で対応しようとしたところ、[起動とアクティブ化のアクセス許可] の [編集] ボタンが Disable 状態でクリックすることができませんでした。


調べたところ、Microsoft MVP の Wictor Wilén 氏のブログに対応方法が書かれていました。
http://www.wictorwilen.se/Post/Fix-the-SharePoint-DCOM-10016-error-on-Windows-Server-2008-R2.aspx


これによると、レジストリの HKEY_CLASSES_ROOT\AppID\{61738644-F196-11D0-9953-00C04FD919C1} を更新するためのアクセス許可が付与されていないことが原因とのことです。


ということで Administrator ユーザーでレジストリエディタから対象のレジストリキーのアクセス許可を変更しようとしましたが、いざ [適用] ボタンをクリックしてみると「アクセスが拒否されました。」というダイアログが表示されて適用できません。


Wictor Wilén 氏のブログのコメント欄を見てみると、同じように適用できないという人がいて、この場合の対処法が書かれていました。それは適用前にそのレジストリキーの所有者を TrustedInstaller から Administrators に変更するというものでした。


早速、レジストリキーの所有者を変更して、[起動とアクティブ化のアクセス許可] を確認してみると、今度は [編集] ボタンが Enable 状態でクリックできました。そして、アプリケーションプール ID を追加して、[ローカルからの起動] と [ローカルからのアクティブ化] の2つを許可で設定したところ、問題なく設定できました。この状態でイベントログを監視すると、DCOM に関するエラーは出力されないことになりました。


なお、この話は SharePoint 2007 だけでなく、SharePoint 2010 (Windows Server 2008 x64) でも同じです。同様の現象が発生しますが、そのときも同様の方法で対処できます。