ナレッジ ベース KB0118

Office SharePointでコンテンツをクロールできない

問題

Office SharePointは、think-cellのリンクがあるExcelファイルを含むコンテンツソースを完全にクロールできず、クロール ログに以下のメッセージが表示されます。

Site Data Web Service でエラーが発生しました。(無効な上位サロゲート文字 (0xXXXX) です。上位サロゲート文字は (0xD800 - 0xDBFF) の範囲の値である必要があります。)

原因

これは、Excel 2000およびExcel XPのバグが原因で、破損したメタデータのExcelファイルが生成されます。ソースがリンクされた文字列カスタム ドキュメント プロパティがExcelドキュメントに追加され、ソースを解決できない場合にこの問題が発生します。Excelのその後のバージョンでは、ドキュメント プロパティの値が有効なものに設定されています(空の文字列など)。しかしながら、Excel 2000およびExcel XPでは値にガーベジが含まれており、Office SharePointクローラー失敗の原因になっている可能性があります。Excelドキュメントでは、ソースが解決される場合、ドキュメント プロパティの値は更新前の既定値に設定されていると明示しています。この動作は、Excel 2000およびExcel XPのバグです。

この問題は以下の手順で再現できます。

  1. 以下のリンクを使用して、非常にシンプルなExcelファイルをダウンロードしてください:LinkSourceProp.xls
  2. Office 2000またはOffice XP Excelを使用してファイルを読み込み、マクロがアクティブであることを確認します。
  3. Alt+F11を押してマクロ ウィンドウを開き、AddDocumentPropertyルーチンを実行します。
  4. [ファイル] → [プロパティ] と進み、[カスタム] タブを選択します。
  5. 新しく追加されたTestPropertyに関連のある値はガーベジです。
Excelのメタデータ ダイアログ

解決策

think-cellはカスタム ドキュメント プロパティを使用しており、この動作に気付いた後、弊社はコードを変更し、文字列ではなくブール値の型でドキュメント プロパティを追加しました。Excel 2000とExcel XPは双方とも、ドキュメント プロパティを有効なブール値に設定しており、リンク ソースを解決できなくても、この値は有効なままになります。

think-cell 5.0以降を使用して作成されたファイルは、この回避策を使用しており、Office SharePointによるクロールは可能なはずです。

Microsoft Office Supportに直接連絡し、Excel 2000またはExcel XPで生成されたファイルでの破損したドキュメント プロパティ値の修復について助言を受けてください。