SharePoint ソリューションのトラブルシューティング
以下の問題または警告は、Visual Studio デバッガーを使用して SharePoint ソリューションをデバッグするときに発生することがあります。詳細については、「Debugging SharePoint Workflow Solutions」を参照してください。
このトピックは、次のセクションで構成されています。
- AllのVisual Webパーツではトークン制限
- プロジェクトとプロジェクト項目名の文字制限
- カスタム フィールド作成時のエラー
- 英語以外の新しいサイト定義が配置後にサイトの作成ページに表示されない
- ワークフロー プロジェクトをクリーン システムに配置するとエラーが表示される
- デバッグ中に更新されたイメージを表示するにはブラウザーでアプリケーション ページを更新する必要がある
- エラー: サイトの場所が有効ではありません
- イベント レシーバー プロジェクトでサイト削除 Web イベントが発生しない
- ビジネス データ接続モデル プロジェクトで識別子の名前を変更すると配置エラーが発生する
- 可視 Web パーツを SharePoint で表示しようとするとエラーが表示される
- インポートしたタスク フォーム フィールドを含む再使用可能なワークフローを実行するとエラーが表示される
- インポートして名前を変更したリスト インスタンスを実行するとエラーが表示される
- SharePoint デバッグ セッションが IIS によって終了する
- 自動取り消しで孤立状態のリスト インスタンスが SharePoint に残る
- 元の SharePoint ソリューションがエクスポートしたバージョンによって置換される
- エラーは、デバッグを開始すると表示されます
- 関連トピック
AllのVisual Webパーツではトークン制限
サンドボックス ソリューションのVisual Webパーツは、SharePointのランタイム サポート標準トークンを、その$SPUrlのような処理できません。その結果、URLが解決されないため、スクリプトの要素を直接参照する場合は、次の例のように、Visual Webパーツ デザイナーのデザイン ビューの内容を、プレビューできません:
<script src=”<% $SPUrl:~site/SiteAssets/ListOperations.js %>"></script>
この制限を回避し、トークンを解決するには、リテラルを使用してそれを参照する:
<asp:literal ID="Literal1" runat="server" Text="<script src='" />
<asp:literal ID="Literal2" runat="server" Text="<% $SPUrl:~site/SiteAssets/ListOperations.js %>" />
<asp:literal ID="Literal3" runat="server" Text="' type='text/javascript' ></script>" />
プロジェクトとプロジェクト項目名の文字制限
プロジェクトとプロジェクト項目名には、SharePoint 2010の配置パスで有効な文字だけを含めることができます。他の文字は使用できません。
エラー メッセージ
"無効な文字" エラー メッセージ。
解決策
SharePointプロジェクトとプロジェクト項目名では、次の文字だけを使用する:
ASCII 英数字
スペース
ピリオド (.)
コンマ (,)
アンダースコア (_)
ダッシュ (-)
円記号 (\)
プロジェクトのパッケージ化と、検証規則は、配置する各ファイルの配置 Path プロパティに有効な文字だけが含まれていることを確認します。
カスタム フィールド作成時のエラー
Visual Studioに、カスタム フィールドは、XMLで定義されます。エラー メッセージは、フィールドが特定の形式で定義または参照されていない場合に発生します。
エラー メッセージ
パッケージ実行時の "無効な文字" エラー メッセージ。
解決策
フィールド定義のIDは次の例のように、中かっこで囲んだGUIDである必要があります:
<Field ID="{5744d18c-305e-4632-8bd1-09d134f4830d}"
Type="Note"
Name="PatientName"
DisplayName="Patient Name"
Group="A Custom Group">
</Field>.
次の例に示すように、コンテンツ タイプのフィールド参照は空の要素の形式 (<FieldRef />) を使用して、開始/終了要素 (<FieldRef></FieldRef>) を使用して定義する必要があります:
<FieldRef ID="{5744d18c-305e-4632-8bd1-09d134f4830d}"
Name="PatientName"
DisplayName="Patient Name"
Required="TRUE"/>
フィールドのソースXMLが正しくないが、有効なXMLファイルで、またはそのほかの問題を積極的、エラーが発生します」。ファイルを解析できません。
英語以外の新しいサイト定義が配置後にサイトの作成ページに表示されない
Visual Studio (つまり、1033以外のロケール ID は、バージョン) の英語以外のバージョンのを使用してサイト定義を作成して配置した後に、[SharePoint のカスタマイズ] のタブでは [テンプレートの選択] ボックスに表示されず、新しいサイト テンプレートは [新しい SharePoint サイト] のページに表示されません。
エラー メッセージ
なし。
解決策
この問題は、webtemp サイト定義構成ファイル (webtemp_SiteDefinitionProject1.xml など) の [パス] プロパティの値が正しくないために発生します。webtemp ファイルの [パス] プロパティ ([配置場所] の下にあります) で、1033 を適切なロケール ID に変更します。たとえば、日本語のロケールを使用する場合は値を 1041 に変更します。詳細については、MSDN Web サイトの「Locale IDs Assigned by Microsoft (ロケール ID (LCID) の一覧)」を参照してください。
ワークフロー プロジェクトをクリーン システムに配置するとエラーが表示される
この問題は、クリーン システムの Visual Studio のワークフロー プロジェクトを配置した場合に発生します。クリーン システムは Visual Studio の新しいインストールを配置すると、SharePointワークフロー プロジェクト インストールされていないコンピューターです。
エラー メッセージ
SharePoint リストが見つかりません: ワークフローの履歴。
解決策
このエラーが発生するのは、ワークフローの履歴リストがないからです。開発環境がクリーン システムの場合、ワークフローが配置されていないため、ワークフローの履歴リストはまだ存在しません。この問題を解決するには、ワークフロー ウィザードをもう一度開きます。これにより、ワークフローの履歴リストが作成されます。
ワークフロー ウィザードを再実行するには
**[ソリューション エクスプローラー]**では、ワークフローのノードを選択します。
[プロパティ] のウィンドウで、省略記号をクリックします (…) 省略記号ボタンがあるプロパティでボタンをクリックします。
デバッグ中に更新されたイメージを表示するにはブラウザーでアプリケーション ページを更新する必要がある
デバッグしている SharePoint ソリューションに、イメージを表示するコントロール (HTML Image コントロールなど) を含むアプリケーション ページが含まれている場合に、そのイメージに対して行われた変更を表示するには、ブラウザーでページを更新する必要があります。
エラー: サイトの場所が有効ではありません
この問題は、SharePoint Server 2010 がインストールされていない場合に発生することがあります。また、SharePoint カスタマイズ ウィザードで指定した SharePoint Web サイトに対する管理者の権限がない場合にも発生する可能性があります。
エラー メッセージ
- 入力されている SharePoint サイトの場所が有効ではありません。
解決策
SharePoint Server 2010 をインストールします。
SharePoint Web サイトに対する管理者の権限があることを確認します。詳細については、Office Online の「Grant access to the portal site (ポータル サイトへのアクセスを許可する)」を参照してください。
イベント レシーバー プロジェクトでサイト削除 Web イベントが発生しない
イベント レシーバー プロジェクトを作成し、"サイトが削除されています" などの特定の Web イベントを選択すると、イベントは発生しません。
エラー メッセージ
なし。
解決策
この問題は、サイト レベルのイベントを処理するにはフィーチャーのスコープが "サイト" である必要があるのに、イベント レシーバー プロジェクトの既定のフィーチャー スコープが "Web" になっているために発生します。影響を受ける Web イベントは次のとおりです。
サイトが削除されています (WebDeleting)
サイトが削除されました (WebDeleted)
サイトが移動されています (WebMoving)
サイトが移動されました (WebMoved)
この問題を修正するには、イベント レシーバーのフィーチャー スコープを次のように変更します。
イベント レシーバーのフィーチャー スコープを変更するには
**[ソリューション エクスプローラー]**で、ファイルをダブルクリックするか、またはショートカット メニューを開き、を [開く]を選択すると、[Feature Designer] のイベント レシーバーの.featureファイルを開きます。
矢印を **[スコープ]**の横にあるを選択し、表示されるリストの [サイト] を選択します。
ビジネス データ接続モデル プロジェクトで識別子の名前を変更すると配置エラーが発生する
この問題は、ビジネス データ接続 (BDC) モデルでエンティティの識別名を変更した後、ソリューションを配置しようとすると発生します。
エラー メッセージ
<モデル名> には次の外部コンテンツ タイプ アクティブ化エラーがあります...
名前 <モデル名>' の IMetadataObject は、フィールド '名' の値が重複しています...
解決策
この問題を解決するには、モデルを手動で削除した後、ソリューションを再び配置します。モデルを削除するには、次のどちらかのツールを使用します。
SharePoint 2010 サーバーの全体管理。詳細については、Microsoft TechNet Web サイトの「BDC モデルを管理する (SharePoint Server 2010)」を参照してください。
Windows PowerShell。モデルは、コマンド プロンプトに「Remove-SPBusinessDataCatalogModel」というコマンドを入力することで削除できます。詳細については、Microsoft TechNet Web サイトの「全般のコマンドレット (SharePoint Server 2010)」を参照してください。
可視 Web パーツを SharePoint で表示しようとするとエラーが表示される
この問題は、ユーザー コントロールの [パス] プロパティが文字列 "CONTROLTEMPLATES\" で始まっていない場合に発生します。
エラー メッセージ
'/_CONTROLTEMPLATES/<プロジェクト名>/<Web パーツ名>/<ユーザー コントロール名>.ascx' ファイルが存在しません。
'/' アプリケーションにサーバー エラーがあります。
解決策
この問題を解決するには
**[ソリューション エクスプローラー]**で、ファイル名拡張子が.ascxにあるユーザー コントロール ファイルを選択します。
メニュー バーで、[表示]、[プロパティ ウィンドウ] の順に選択します。
[プロパティ] ウィンドウで、[配置場所] ノードを展開します。
ように文字列「CONTROLTEMPLATES\」で [パス] のプロパティの開始値確認します。
インポートしたタスク フォーム フィールドを含む再使用可能なワークフローを実行するとエラーが表示される
この問題は、フィールドを含むタスク フォームが存在するワークフローをインポートした後、ワークフローのインポート元と同じシステム上で新しいワークフローを実行したときに発生します。
エラー メッセージ
配置手順 "機能のアクティブ化" でエラーが発生しました。機能 [Guid] に定義された ID [Guid] が、現在のサイト コレクションまたはサブサイト内で検出されました。
解決策
このエラーは、Visual Studio の再利用可能なワークフローのインポート プロジェクトでタスク フォームのフィールド ID が変更されないせいで、フィールド ID の競合が発生した結果です。インポートしたワークフローを、元のワークフローと同じサーバー上に配置すると、フィールド ID の競合が発生します。
この問題を解決するには、検索置換機能を使用して、インポートしたすべてのワークフロー ファイル内のフィールド ID 属性の値を変更する必要があります。
インポートして名前を変更したリスト インスタンスを実行するとエラーが表示される
この問題は、インポートしたリスト インスタンスの名前を変更した後、Visual Studio で実行した場合に発生します。
エラー メッセージ
ビルド エラー: 配置手順 '機能のアクティブ化' でエラーが発生しました。Template\Features\[import projectfeaturename]\Files\Lists\[oldlist name]\Schema.xml ファイルが存在しません。
解決策
リスト インスタンスをインポートすると、CustomSchema という名前の属性がリスト インスタンスの Elements.xml ファイルに追加されます。Elements.xml には、リスト インスタンス用のカスタム schema.xml のパスが含まれます。Visual Studio でリスト インスタンスの名前を変更すると、カスタム schema.xml の配置パスは変更されますが、CustomSchema 属性のパス値は更新されません。この結果、機能がアクティブ化されるときに、リスト インスタンスは、CustomSchema 属性に指定された古いパスでは schema.xml ファイルを検出できません。
この問題を解決するには、CustomSchema 属性の schema.xml ファイルの配置場所のパスを更新します。
SharePoint デバッグ セッションが IIS によって終了する
この問題は、を実行するに Visual Studio セットのSharePointソリューションのブレークポイント、F5キーを選択すると発生後、ブレークポイントで90秒以上されません。
エラー メッセージ
デバッグ対象の Web サーバー プロセスは、インターネット インフォメーション サービス (IIS) によって停止されました。IISアプリケーション プールのping設定を構成することでこの問題を回避できます。詳細については、ヘルプを参照してください。
解決策
既定では、IIS アプリケーション プールは、アプリケーションから応答が返るまで 90 秒間待機した後、アプリケーションを閉じます。このプロセスは、アプリケーションの "ping" として知られています。この問題を解決するには、待機時間を増やすか、アプリケーションの ping を完全に無効にします。
IIS アプリケーション プールの設定にアクセスするには
IIS マネージャーを開きます。
[接続] のペインで、SharePointサーバー ノードを展開し、[Application Pools] のノードを選択します。
次に [Application Pools] のページで、SharePointアプリケーション プール (通常は "SharePoint - 80") を、[アクション] のペインでを選択します [詳細設定] のリンクをクリックします。
IISがタイムアウトするまでの待機時間を長くするには、90秒より大きい値に [Ping 最大応答時間 (秒)] の値を変更します。
IIS の ping を無効にするには、[Ping の有効化] を [False] に設定します。
自動取り消しで孤立状態のリスト インスタンスが SharePoint に残る
この問題は、次の手順に従った場合に発生します。
リスト インスタンスがあるリスト定義を Visual Studio で作成します。
ソリューションを実行するには、F5キーを選択します。
デバッグを停止するか、SharePoint サイトを閉じます。
SharePoint サイトを再度開き、リスト インスタンスを開きます。
エラー メッセージ
'/' アプリケーションにサーバー エラーがあります。
解決策
このエラーは、SharePoint ソリューションのデバッグ セッションを閉じた後、自動取り消し機能によってソリューションが取り消されたために発生します。取り消しにより、リスト定義は SharePoint から削除されますが、リスト インスタンスは削除されません。リスト インスタンスは、基になるリスト定義を必要とします。
この問題を解決するには、ソリューションを、**[ビルド]**を選択するメニュー バーで **[配置]**展開します。(F5キーの選択によってソリューションをデバッグします。)次に、SharePoint 内のリスト インスタンスを削除します。
元の SharePoint ソリューションがエクスポートしたバージョンによって置換される
エクスポートした SharePoint ソリューションを Visual Studio にインポートした後、そのソリューションをエクスポート元のサイトに配置した場合、元の SharePoint ソリューションが置換されます。この問題は、ソリューションの配置先を元のソリューションがアクティブ化されていないサーバーにすると、発生しません。
エラー メッセージ
なし。
解決策
エクスポート元のサイトでソリューションが上書きされないようにするには、ソリューション ID の GUID と Visual Studio プロジェクトにインポートしたすべての機能の機能 ID を変更します。
エラーは、デバッグを開始すると表示されます
Visual StudioでSharePointソリューションのデバッグを開始すると、エラーが特定のキーがディクショナリに存在しないので、Visual StudioがWeb.configファイルを読み込むことができないことを示します。
エラー メッセージ
Web.config 構成ファイルを読み込むことができませんでした。ファイルをチェックして、形式が正しくない XML 要素を修正した後、再試行してください。次のエラーが発生しています: 特定のキーがディクショナリに存在しません。
解決策
Visual StudioのSharePointプロジェクトのサイトURLのプロパティ値がWebアプリケーションの代替アクセス マッピングの既定のゾーンに割り当てられたURLと一致することをこの問題を解決するには、確認します。URLに別のゾーンを、イントラネットなど) を使用することにより、エラーを解決できません。プロジェクトのサイトURLと既定のゾーンのURLが一致する必要があります。次に、代替アクセス マッピングにアクセスするには、SharePoint 2010サーバーの全体管理ユーティリティを開きます。、[Web Applications]の下に、[アプリケーション管理] のリンク、およびを選択します [代替アクセス マッピングの構成] のリンクを選択します。詳細については、「Web アプリケーション用の領域を作成する」を参照してください。
参照
概念
SharePoint のパッケージ化と配置のトラブルシューティング