エラーページの表示を切り替える方法

投稿者: | 2015年1月31日

SharePoint 開発をしていると一度は悩む(?)、どこでもキャッチしていない例外(未処理の例外)が起きた時に表示するエラーページを切り替える方法についてまとめました。

切り替え方法

エラーページは SharePoint の IIS サイトの物理フォルダにある web.config の以下の属性の設定により切り替えることができます。
・SharePoint タグ配下にある SafeMode タグの CallStack 属性
・system.web タグ配下にある customErrors タグの mode 属性
・system.web タグ配下にある compilation タグの debug 属性

SharePoint の IIS サイトは以下の場所にあります。
C:\inetpub\wwwroot\wss\VirtualDirectories\80 ←最後の 80 はポート番号

また、_layouts フォルダ配下のアプリケーションページ等で発生した未処理の例外に対するエラーページの表示切り替えを行う場合は、_layouts フォルダ配下にある web.config の customErrors タグの設定も忘れずに行ってください。

_layouts フォルダは以下の場所にあります。
C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\LAYOUTS
※15 フォルダは SharePoint のバージョンにより数字が異なります。2013 の場合は 15 となります。

web.config の各属性の具体的な設定は以下の通りとなります。

エラーページの種類CallStack 属性mode 属性debug 属性 
 不明なエラーfalseOnfalse
標準エラーtrueOntrue
詳細エラーtrueOff または RemoteOnlytrue

以下、各エラーページのキャプチャーです。

不明なエラーページ
error-standard

標準エラーページ
error-runtime

詳細エラーページ
error-detail