web-dev-qa-db-ja.com

同じソリューションでMVCプロジェクトからWeb APIプロジェクトをデバッグする方法

VS 2012では、Web APIプロジェクトへのjQuery呼び出しを使用してMVC 4 Webアプリケーションを作成しようとしています。 (他の開発者は、現在のネイティブアプリでAPIを使用し、おそらく将来的にAPIに追加するでしょう。)1つのプロジェクトがWeb APIであり、別のプロジェクトがMVC 4 Webサイトです。実行するように設定できるのは1つだけで、localhost:xxxxxを使用します。

両方の変更をデバッグするにはどうすればよいですか?たとえば、新しいAPIパス/ api/customer/getを追加し、そのパスに新しいjQuery ajax呼び出しを追加して、結果のJSONで何かを実行するとします。私は両方のプロジェクトでコードを変更しましたが、エンドツーエンドでそれに従いたいです。両方を起動するにはどうすればよいですか?両方をデバッグするにはどうすればよいですか?

明確にするために、MVCアプリはサーバー側でAPIを呼び出していません。主に、.VCでバンドル、縮小、および(できれば)事前にコンパイルされたHandlebarsテンプレートを簡単に使用できるようにするためにMVCを使用しています。 API呼び出しはjQueryからのものです。これらの技術はまだ比較的新しいので、別の提案を歓迎します。

前もって感謝します。

31
Jammerms

私は同じ問題を抱えていて、ここから解決策を見つけました:

forums.asp.net

修正方法は次のとおりです。

ソリューションファイルで、[プロパティ]をクリックして[スタートアッププロジェクト]ノードに移動します(まだ選択されていない場合)

次に、複数のスタートアッププロジェクトを選択します。 WebサイトとWebサービスを選択し、[アクション]列で両方の[開始]が選択されていることを確認します。

これで、Webサイトをデバッグし、Webサービスにブレークポイントを設定すると、ブレークポイントに到達するはずです。

69
John Lucas

パーティーに遅れて来ましたが、他の誰かが解決策を探している場合、これが私にとって最善でした:Apiプロジェクトを開始プロジェクトに設定します(ブラウザを切り替えることができるように、1つのスタートアップに制限する必要がありました簡単に)。サービスプロジェクトを起動した後、web/uiプロジェクトを右クリックして[デバッグ]を選択し、新しいインスタンスを開始します。両方が実行され、WebからAPIにシームレスに移行します。

1
Ron

Web APIプロジェクトでも同様の問題が発生しました。私のソリューションは、angularフロントエンドとバックエンドの2つのWeb APIプロジェクトで構成されていました。1つのWeb APIプロジェクトは「承認」を処理し、もう1つは「リソース」を処理しました。TaiseerJoudehの次のチュートリアルを使用しました出発点として:

http://bitoftech.net/2014/09/24/decouple-owin-authorization-server-resource-server-oauth-2-0-web-api/

ブレークポイントは「承認サーバー」で機能しましたが、「リソースサーバー」では機能しませんでした。 2つのプロジェクトのパッケージを比較して、違いを確認しました。 「Microsoft.AspNet.WebApi.Cors」を「リソースサーバー」プロジェクトに追加すると、ブレークポイントが機能し始めます。

0
MichaelBarce