システム ダイアグラムのトラブルシューティング

更新 : 2007 年 11 月

システム デザイナで作業している場合、特定のアクションは、システム ダイアグラムおよび他の分散システム ダイアグラムに影響します。このトピックでは、これらのアクションを実行した結果発生する特定の状況、関連付けられているアイテムに対する影響、およびこれらの状況を解決するための手順について説明します。次の一覧に、システム ダイアグラムに表示される可能性がある警告状態と、トラブルシューティングが必要になる可能性があるその他の問題を示します。

  • Alert States on System Diagrams

  • Opening, Closing, and Removing System Diagrams

  • Modifying System Diagrams While Code is Running

システム ダイアグラムでの警告状態

システム ダイアグラムに表示される可能性がある警告状態を次の表に示します。

警告状態

原因

メンバの外枠が赤い破線で表示される

  • メンバのシステム ダイアグラムが閉じられている状態で、メンバの定義に対して名前の変更または削除が行われたか、メンバの定義が見つからなくなりました。

  • メンバのシステム ダイアグラムが閉じられている状態で、メンバの定義の [カルチャ]、[バージョン]、または [ドキュメント名] プロパティが変更されました。

  • メンバがアプリケーションである場合、そのアプリケーションの定義に関連付けられているプロジェクトが削除されているか、見つからないか、ソリューションからアンロードされています。

たとえば、アプリケーション システムのメンバとその定義は、名前でリンクされています。Visual Studio の閉じているシステム ダイアグラムでは、アプリケーション システムのメンバの定義名を変更しても、メンバは更新されません。定義の名前を変更すると、閉じているシステム ダイアグラム上にあるアプリケーション システムのメンバとしての、定義とそのユースとのリンクが切れます。

これらのシステム ダイアグラムを再び開くと、リンクが切れているメンバ ("孤立したメンバ" とも呼ばれます) の外枠が赤い破線で描画されます。孤立したメンバの定義の名前を変更すると、そのメンバには以前の定義名が表示されます。それ以外の場合は、現在の定義名が表示されます。いずれの場合も、定義名の下には波線が表示されます。

この警告状態が発生する可能性のあるシナリオを次の表に示します。

アクション

解決策

メンバのシステム ダイアグラムが閉じている間に、メンバの定義の名前を変更した。

名前を変更した定義を選択し、メンバに関連付けして、孤立したメンバを修復します。詳細については、「方法 : アプリケーション システムで孤立したメンバを修復する」を参照してください。

定義を選択しない場合は、定義の名前を一時的に以前の名前に復元し、システム ダイアグラムが開いている状態で定義の名前を変更します。詳細については、「方法 : アプリケーションとシステム定義をシステム ダイアグラムで表示する」および「方法 : アプリケーション ダイアグラムでアプリケーションの名前を変更する」を参照してください。

メンバのシステム ダイアグラムが閉じている間に、メンバの定義を削除した。

別の定義を選択し、メンバに関連付けして、孤立したメンバを修復します。詳細については、「方法 : アプリケーション システムで孤立したメンバを修復する」を参照してください。

孤立したメンバを修復しない場合は、該当するメンバを含むシステム ダイアグラムから、メンバを削除できます。詳細については、「方法 : アプリケーション システムからメンバを削除する」を参照してください。

メンバの定義が見つからない。

見つからない定義をソリューションに追加します。

ms181900.alert_note(ja-jp,VS.90).gifメモ :
アプリケーション定義が見つからない場合には、外部 Web サービス、データベース、汎用アプリケーションなどのアプリケーション定義 (.sdm) ファイルが見つからないことがあります。システム定義が見つからないとは、システム ダイアグラム (.sd) ファイルが見つからないということです。

たとえば、システムの定義が見つからない場合、該当するシステム ダイアグラムをソリューションに戻します。詳細については、「方法 : ソリューションにシステム ダイアグラムを追加する」を参照してください。

見つからない定義を探し出すことができない場合は、次のいずれかのタスクを実行できます。

メンバのシステム ダイアグラムが閉じられている状態で、メンバの定義の [カルチャ]、[バージョン]、または [ドキュメント名] プロパティを変更した。

更新した定義を選択し、メンバに関連付けして、孤立したメンバを修復します。詳細については、「方法 : アプリケーション システムで孤立したメンバを修復する」を参照してください。

定義を選択しない場合は、定義のプロパティを一時的に以前の値に復元し、システム ダイアグラムが開いている状態で定義を更新します。詳細については、「方法 : アプリケーションとシステム定義をシステム ダイアグラムで表示する」および「方法 : アプリケーション ダイアグラムでアプリケーションの名前を変更する」を参照してください。

実装済みのアプリケーション定義に関連付けられているプロジェクトが、ソリューションから削除されているか、アンロードされている。

該当するプロジェクトをソリューションに戻すか、再読み込みます。

詳細については、次のトピックを参照してください。

実装済みのアプリケーション定義に関連付けられているプロジェクトが利用できなくなり、ソリューションにはアンロードされたとして表示される。

アンロードしたプロジェクトをソリューションから削除し、システム ダイアグラム上にある孤立したメンバに別の定義を選択します。孤立したメンバを修復したら、孤立した定義をアプリケーション ダイアグラムから削除できます。

詳細については、「方法 : アプリケーション システムで孤立したメンバを修復する」を参照してください。

別のソリューションのシステム ダイアグラムが追加された。

実装されていないアプリケーションの定義が見つからない場合、同じ種類の新しいアプリケーションをアプリケーション ダイアグラムに追加します。別の定義を選択し、メンバに関連付けして、孤立したメンバを修復することもできます。詳細については、「方法 : アプリケーション システムで孤立したメンバを修復する」を参照してください。

実装されていないアプリケーションの定義が見つからない場合、見つからない定義のプロジェクトをソリューションに追加します。詳細については、「方法 : 既存のソリューションで、プロジェクトのリバース エンジニアリングを行う」を参照してください。たとえば、そのアプリケーションを他のソリューションに実装して、そのプロジェクトを現在のソリューションに追加できます。詳細については、「方法 : アプリケーション ダイアグラムでアプリケーションを実装する」を参照してください。

システム定義が見つからない場合、その定義のシステム ダイアグラムを現在のソリューションに追加します。詳細については、「方法 : ソリューションにシステム ダイアグラムを追加する」を参照してください。

Visual Studio の異なるソリューションやインスタンスに含まれるシステム ダイアグラム間でメンバをコピーした。

アプリケーション定義が見つからない場合、該当する定義を現在のソリューションのアプリケーション ダイアグラムにコピーします。アプリケーション定義が実装されている場合、そのアプリケーションのプロジェクトを追加します。詳細については、「方法 : 既存のソリューションで、プロジェクトのリバース エンジニアリングを行う」を参照してください。

システム (メンバ) 定義が見つからない場合、該当するシステムを定義しているシステム ダイアグラムを現在のソリューションに追加します。詳細については、「方法 : ソリューションにシステム ダイアグラムを追加する」を参照してください。

システム ダイアグラムを開く、閉じる、および削除する

ソリューションでシステム ダイアグラムを開くか、閉じるか、削除すると、ソリューションの他のダイアグラムに次のような影響があります。

  • システム ダイアグラムを開くと、アプリケーション ダイアグラムと、開いたシステム ダイアグラムで参照されているすべてのシステム ダイアグラムが開きます。

  • システム ダイアグラムを閉じるときは、そのシステム ダイアグラムを参照しているすべてのシステム ダイアグラムおよび配置ダイアグラムを保存し終了することが要求されます。

    ms181900.alert_note(ja-jp,VS.90).gifヒント :

    システム ダイアグラムを保存しないで閉じるには、まず、関連するシステム ダイアグラムまたは配置ダイアグラムを閉じます。

  • ソリューションからシステム ダイアグラムを削除するには、ソリューションで開いている他のすべてのダイアグラムを閉じておく必要があります。

コードの実行中にシステム ダイアグラムを変更した場合に生じる問題

新しいシステム ダイアグラムを追加し、コードの実行中にそのダイアグラムでアクション (アプリケーション定義のユースを追加するなど) を実行すると、Visual Studio が応答しなくなります。

ms181900.alert_note(ja-jp,VS.90).gifヒント :

この状況を回避するには、ダイアグラム上でアクションを実行する前にコードの実行を停止します。

参照

その他の技術情報

システム ダイアグラムでアプリケーション システムをデザインする