次の方法で共有


SharePoint ソリューションのトラブルシューティング

以下の問題または警告は、Visual Studio デバッガーを使用して SharePoint ソリューションをデバッグするときに発生することがあります。 詳細については、「SharePoint ワークフロー ソリューションのデバッグ」を参照してください。

このトピックは、次のセクションで構成されています。

  • プロジェクト名とプロジェクト項目名の文字制限
  • カスタム フィールド作成時のエラー
  • 英語以外の新しいサイト定義が配置後にサイトの作成ページに表示されない
  • ワークフロー プロジェクトをクリーン システムに配置するとエラーが表示される
  • デバッグ中に更新されたイメージを表示するにはブラウザーでアプリケーション ページを更新する必要がある
  • エラー: サイトの場所が有効ではありません
  • イベント レシーバー プロジェクトでサイト削除 Web イベントが発生しない
  • ビジネス データ接続モデル プロジェクトで識別子の名前を変更すると配置エラーが発生する
  • 可視 Web パーツを SharePoint で表示しようとするとエラーが表示される
  • インポートしたタスク フォーム フィールドを含む再使用可能なワークフローを実行するとエラーが表示される
  • インポートして名前を変更したリスト インスタンスを実行するとエラーが表示される
  • SharePoint デバッグ セッションが IIS によって終了する
  • 自動取り消しで孤立状態のリスト インスタンスが SharePoint に残る
  • 元の SharePoint ソリューションがエクスポートしたバージョンによって置換される
  • デバッグ開始時にエラーが表示される
  • 関連トピック

プロジェクト名とプロジェクト項目名の文字制限

プロジェクト名とプロジェクト項目名には、SharePoint 2010 の配置パスで有効な文字だけを使用できます。 他の文字は使用できません。

エラー メッセージ

"無効な文字" エラー メッセージ。

解決策

SharePoint のプロジェクト名とプロジェクト項目名では、次の文字だけを使用してください。

  • ASCII 英数字

  • スペース

  • ピリオド (.)

  • コンマ (,)

  • アンダースコア (_)

  • ダッシュ (-)

  • 円記号 (\)

プロジェクトがパッケージされるとき、検証規則により、配置される各ファイルの [配置パス] プロパティに有効な文字だけが含まれていることが確認されます。

カスタム フィールド作成時のエラー

Visual Studio 2010 のカスタム フィールドは、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 ファイルではない場合など) は、"ファイルを解析できません" エラーが発生します。

英語以外の新しいサイト定義が配置後にサイトの作成ページに表示されない

英語以外のバージョン (ロケール ID が 1033 以外のバージョン) の Visual Studio 2010 を使用して新しいサイト定義を作成して配置した後に、[テンプレートの選択] ボックスに [SharePoint のカスタマイズ] タブが表示されず、[新しい SharePoint サイト] ページに新しいサイト テンプレートが表示されません。

エラー メッセージ

なし。

解決策

この問題は、webtemp サイト定義構成ファイル (webtemp_SiteDefinitionProject1.xml など) の [パス] プロパティの値が正しくないために発生します。 webtemp ファイルの [パス] プロパティ ([配置場所] の下にあります) で、1033 を適切なロケール ID に変更します。 たとえば、日本語のロケールを使用する場合は値を 1041 に変更します。 詳細については、MSDN Web サイトの「Locale IDs Assigned by Microsoft (ロケール ID (LCID) の一覧)」を参照してください。

ワークフロー プロジェクトをクリーン システムに配置するとエラーが表示される

この問題は、Visual Studio 2010 のワークフロー プロジェクトをクリーン システムに配置した場合に発生します。 クリーン システムとは、Visual Studio 2010 と SharePoint の新しいインストールが含まれているが、ワークフロー プロジェクトは配置されていないコンピューターです。

エラー メッセージ

SharePoint リストが見つかりません: ワークフローの履歴。

解決策

このエラーが発生するのは、ワークフローの履歴リストがないからです。 開発環境がクリーン システムの場合、ワークフローが配置されていないため、ワークフローの履歴リストはまだ存在しません。 この問題を解決するには、ワークフロー ウィザードをもう一度開きます。これにより、ワークフローの履歴リストが作成されます。

ワークフロー ウィザードを再実行するには

  1. ソリューション エクスプローラーで、ワークフロー ノードを選択します。

  2. [プロパティ] ウィンドウで、任意のプロパティの省略記号 (…) ボタンをクリックします。

デバッグ中に更新されたイメージを表示するにはブラウザーでアプリケーション ページを更新する必要がある

デバッグしている SharePoint ソリューションに、イメージを表示するコントロール (HTML Image コントロールなど) を含むアプリケーション ページが含まれている場合に、そのイメージに対して行われた変更を表示するには、ブラウザーでページを更新する必要があります。

エラー: サイトの場所が有効ではありません

この問題は、SharePoint Server 2010 がインストールされていない場合に発生することがあります。 また、SharePoint カスタマイズ ウィザードで指定した SharePoint Web サイトに対する管理者の権限がない場合にも発生する可能性があります。

エラー メッセージ

  • 入力されている SharePoint サイトの場所が有効ではありません。

解決策

イベント レシーバー プロジェクトでサイト削除 Web イベントが発生しない

イベント レシーバー プロジェクトを作成し、"サイトが削除されています" などの特定の Web イベントを選択すると、イベントは発生しません。

エラー メッセージ

なし。

解決策

この問題は、サイト レベルのイベントを処理するにはフィーチャーのスコープが "サイト" である必要があるのに、イベント レシーバー プロジェクトの既定のフィーチャー スコープが "Web" になっているために発生します。 影響を受ける Web イベントは次のとおりです。

  • サイトが削除されています (WebDeleting)

  • サイトが削除されました (WebDeleted)

  • サイトが移動されています (WebMoving)

  • サイトが移動されました (WebMoved)

この問題を修正するには、イベント レシーバーのフィーチャー スコープを次のように変更します。

イベント レシーバーのフィーチャー スコープを変更するには

  1. イベント レシーバーのフィーチャーをフィーチャー デザイナーで開きます。 そのためには、ソリューション エクスプローラーで .feature ファイルをダブルクリックします。

  2. [スコープ] の横のドロップダウン矢印をクリックします。

  3. ドロップダウン リストで [サイト] をクリックします。

ビジネス データ接続モデル プロジェクトで識別子の名前を変更すると配置エラーが発生する

この問題は、ビジネス データ接続 (BDC) モデルでエンティティの識別名を変更した後、ソリューションを配置しようとすると発生します。

エラー メッセージ

  • <モデル名> には次の外部コンテンツ タイプ アクティブ化エラーがあります...

  • 名前 <モデル名>' の IMetadataObject は、フィールド '名' の値が重複しています...

解決策

この問題を解決するには、モデルを手動で削除した後、ソリューションを再び配置します。 モデルを削除するには、次のどちらかのツールを使用します。

可視 Web パーツを SharePoint で表示しようとするとエラーが表示される

この問題は、ユーザー コントロールの [パス] プロパティが文字列 "CONTROLTEMPLATES\" で始まっていない場合に発生します。

エラー メッセージ

  • '/_CONTROLTEMPLATES/<プロジェクト名>/<Web パーツ名>/<ユーザー コントロール名>.ascx' ファイルが存在しません。

  • '/' アプリケーションにサーバー エラーがあります。

解決策

この問題を解決するには

  1. ソリューション エクスプローラーで、ユーザー コントロールを選択します。 このファイル名の拡張子は .ascx です。

  2. [表示] メニューの [プロパティ ウィンドウ] をクリックします。

  3. [プロパティ] ウィンドウで、[配置場所] ノードを展開します。

  4. [パス] プロパティの値が、文字列 "CONTROLTEMPLATES\" で始まっていることを確認します。

インポートしたタスク フォーム フィールドを含む再使用可能なワークフローを実行するとエラーが表示される

この問題は、フィールドを含むタスク フォームが存在するワークフローをインポートした後、ワークフローのインポート元と同じシステム上で新しいワークフローを実行したときに発生します。

エラー メッセージ

配置手順 "機能のアクティブ化" でエラーが発生しました。機能 [Guid] に定義された ID [Guid] が、現在のサイト コレクションまたはサブサイト内で検出されました。

解決策

このエラーは、Visual Studio の再利用可能なワークフローのインポート プロジェクトでタスク フォームのフィールド ID が変更されないせいで、フィールド ID の競合が発生した結果です。 インポートしたワークフローを、元のワークフローと同じサーバー上に配置すると、フィールド ID の競合が発生します。

この問題を解決するには、検索置換機能を使用して、インポートしたすべてのワークフロー ファイル内のフィールド ID 属性の値を変更する必要があります。

インポートして名前を変更したリスト インスタンスを実行するとエラーが表示される

この問題は、インポートしたリスト インスタンスの名前を変更した後、Visual Studio で実行した場合に発生します。

エラー メッセージ

ビルド エラー: 配置手順 '機能のアクティブ化' でエラーが発生しました。Template\Features\[import project feature name]\Files\Lists\[old list 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 アプリケーション プールの設定にアクセスするには

  1. IIS マネージャーを開きます。

  2. [接続] ペインで SharePoint サーバー ノードを展開し、[アプリケーション プール] をクリックします。

  3. [アプリケーション プール] ページで SharePoint アプリケーション プール (通常は [SharePoint - 80]) を選択し、[操作] ペインで [詳細設定] をクリックします。

  4. IIS がタイムアウトするまでの待機時間を長くするには、[Ping 最大応答時間] を、90 秒よりも大きな値に変更します。

  5. IIS の ping を無効にするには、[Ping の有効化][False] に設定します。

自動取り消しで孤立状態のリスト インスタンスが SharePoint に残る

この問題は、次の手順に従った場合に発生します。

  1. リスト インスタンスがあるリスト定義を Visual Studio 2010 で作成します。

  2. F5 キーを押してソリューションを実行します。

  3. デバッグを停止するか、SharePoint サイトを閉じます。

  4. 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 アプリケーション] の下の [代替アクセス マッピングを構成する] リンクをクリックします。 詳細については、「Web アプリケーション用の領域を作成する」を参照してください。

参照

概念

SharePoint ソリューションのビルドとデバッグ

その他の技術情報

SharePoint のパッケージ化と配置のトラブルシューティング

Visual Studio でのデバッグ