ASP.NET と Silverlight プロジェクトを共通のソリューションに追加すると、Web サイト プロジェクトのデバッグ中に、Visual Studio デバッガーが Silverlight アプリケーションに自動的にアタッチされます。Visual Studio の 2 つの個別のインスタンスを同じ Internet Explorer インスタンスに接続することはできないため、両方を同じソリューションに追加して、そこからデバッグする必要があります。
Silverlight プロジェクトを既存の ASP.NET ソリューションに追加するか (ソリューションを右クリックし、[追加] -> [既存のプロジェクト])、両方を同時にデバッグする場合に備えて新しいソリューションを作成します (新しい空のソリューションを作成し、以前と同じ既存のプロジェクト)。
その後、すべてを段階的に構成するプロセスを次に示します。このソース ファイルは、次の場所からテスト ソリューションにダウンロードできます。
http://www.singulink.com/ClientFiles/StackOverflow/CrossProjectTest.zip
プロジェクトは次のとおりです。
- CrossProjectTest - Silverlight 4 プロジェクト
- CrossProjectTest.Web - Index.html 内で Silverlight アプリケーションをホストする ASP.NET プロジェクト
- IFrameWebApp -
<iframe>
他の ASP.NET プロジェクトの Index.html を指す ASP.NET プロジェクト
1) Silverlight アプリケーションをホストしている ASP.NET プロジェクトで、デバッグ時にページを開かないように設定を変更し、ポートを指定して、既知のアドレス (この場合はhttp://localhost:18000
)。IFrame ASP.NET プロジェクトには表示したい実際のページがあるため、ページを開く必要はありません。ただし、デバッガーを Web サーバー プロセスにフックする必要はありますが、ここでステップ 3 を実行します。

2)次のように、他の ASP.NET プロジェクトで Silverlight アプリケーションをホストするページの既知のアドレスで、IFrame プロジェクト内のsrc
属性をポイントします。iframe
<iframe width="100%" height="100%" src="http://localhost:18000/Index.html"></iframe>
3)ソリューションファイルを右クリックし、 [プロパティ] を選択します。「スタートアップ プロジェクト」の下で、「複数のスタートアップ プロジェクト」を選択し、両方の ASP.NET プロジェクトの開始アクションを「開始」に設定します。

4) 両方の ASP.NET プロジェクト、特にこの特定のシナリオの IFrame プロジェクト内で Silverlight デバッグが有効になっていることを確認します。

5) Silverlight アプリケーションにブレークポイントを設定し、F5 キーを押すと、すべてが起動します。両方の ASP.NET プロジェクトを開始するように設定したため、両方の開発 Web サーバーが起動しますが、IFrame プロジェクトを指す 1 つのインターネット ブラウザーのみが起動します。Silverlight プロジェクトの App Startup にブレークポイントを追加して、ヒットすることを示しました。

6) F5 キーを押して実行を続行すると、次のように Silverlight が IFrame に表示されます。

7) 3 つのプロジェクトのいずれかにブレークポイントを配置すると、Visual Studio ですべてのプロジェクトがデバッグされます。