2013-05-13 20 views
27

VS 2012では、Web APIプロジェクトへのjQuery呼び出しを使用してMVC 4 Webアプリケーションを作成しようとしています。 (他の開発者は現在のネイティブアプリでAPIを消費しており、将来はAPIに追加することになります)。したがって、私はWeb APIであるプロジェクトと、MVC 4ウェブサイトである別のプロジェクトを持っています。私はそれらのうちの1つだけを実行するように設定することができ、localhost:xxxxxを使用します。Web APIプロジェクトを同じソリューションでMVCプロジェクトからデバッグする方法

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

MVCアプリケーションでは、APIへのサーバー側の呼び出しが行われていません。MVCを使用して、バンドル、縮小、および(うまくいけば)プリコンパイル済みのハンドルバーテンプレートを簡単に使用できるようにしています。 。ネット; API呼び出しはjQueryから来ています。私はまだこれらの技術に比較的新しいので、別の提案を歓迎します。

ありがとうございます。

+6

ソリューションエクスプローラでソリューションを右クリックし、「スタートアッププロジェクトを設定...」を選択してから「複数のスタートアッププロジェクト」を選択すると、デバッグ時に、アクションが "開始"。 –

+1

@TDL:それはうまくいく、ありがとう。しかし、それは別の問題を露呈しています。それぞれのプロジェクトが異なるローカルホストのポート番号に接続されているため、異なるWebサイト(およびドメイン)になっています。計画は同じサイトに展開することですが、APIルートはすべて '/ api /'で始まります。そのままで、jQueryの呼び出しでデバッグ時に正しいドメインが参照されるようにするにはどうすればよいですか?私は確かに、デバッグモードでURLを置き換えたくないし、クロスドメインアクセスの問題が発生しているようです。それは理にかなっていますか? – Jammerms

+1

両方を同じWebサイトでホストしたい場合は、両方のプロジェクトを1つにまとめてみましょう。 – LordHits

答えて

59

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

forums.asp.net

修正プログラムは次の操作を実行することです:

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

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

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

+3

これが答えになるはずです。 – Tony

+0

今日は素晴らしい何かを私に教えてくれてありがとう。魅力のように動作します。 –

+0

優れています。私はASP.net MVC(UI)プロジェクトを持っています。もう1つはWebAPIサービスに、もう1つはこの記事で公開し、同時にDEBUGを発行することができます。 :) –

0

私のウェブAPIプロジェクトにも同様の問題がありました。私の解決策は、バックエンドに2つのWeb APIプロジェクトがある角度のあるフロントエンドで構成されていました。 1つのWeb APIプロジェクトが「承認」を処理し、もう1つが「リソース」を処理しました。私は出発点としてTaiseer Joudehによって次のチュートリアルを使用:

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

ブレークポイントは、「認証サーバ」上の...ではなく、「リソースサーバ」に取り組みました。私は、2つのプロジェクトのパッケージを比較して、何が違うのかを見ました。 「Microsoft.AspNet.WebApi.Cors」を「リソースサーバー」プロジェクトに追加すると、ブレークポイントが動作を開始します。

0

パーティーに遅れて来たが、他の誰かが解決策を探している場合は、これが私にとって最善のものだった。Apiプロジェクトを開始プロジェクトに設定する(私はスタートアップに制限してブラウザ間で簡単に移動できます)。サービスプロジェクトを起動した後、web/uiプロジェクトを右クリックしてデバッグを選択し、新しいインスタンスを開始します。あなたは走っていて、ウェブからアピにシームレスに足を踏み入れます。

関連する問題