2

Visual Studio 2010 を使用しており、N 層アーキテクチャを含むソリューションを作成しようとしています。

私はすべての層にそれぞれプロジェクトを持っています

  • 一般
  • ダル
  • 仕事 //
  • サービス // WCF
  • サービスホスト
  • ウェブ

上記のプロジェクトも同じ順序で呼び出されます。したがって、Web はサービス層と対話し、サービス層はビジネスと対話し、ビジネスはファクトリと対話し、ファクトリ プロジェクトは DB と対話する責任があります。

私が抱えている問題は、F5 キーを押して Web プロジェクトを起動する前に、ServiceHost (WCF の単なるセルフ ホスト コンソール) を最初に起動して、Web がサービスを呼び出すようにプロジェクトをセットアップすることです。それはすでに稼働しています。

注:PRDで。Web と WCF はまったく別のボックスでホストされるため、これは問題にはなりませんが、ローカル マシンで開発する場合は、上記が必要です。

暫定的な解決策 - ServiceHost プロジェクトをソリューションから除外したため、Web で起動されず、ServiceHost 実行可能ファイルをコマンド ラインから外部で実行してサービスを起動し、F5 を使用して通常どおり Web プロジェクトを起動しています。

上記を達成するために何をしなければならないか教えてください。

4

1 に答える 1

8

Rajesh が提案したように、マルチプロジェクト ソリューションで複数のプロジェクトを開始するように設定します。これを行うには、[デバッグ] -> [スタートアップ プロジェクトの設定] を選択します (または、ソリューションを右クリックして、コンテキスト メニューから [スタートアップ プロジェクトの設定...] を選択します)。

これにより、ソリューション内のすべてのプロジェクトを一覧表示するウィンドウが表示されます。[複数のスタートアップ プロジェクト] ラジオ ボタンをオンにし、実行する各プロジェクトの [アクション] 列を [開始] または [デバッグなしで開始] に設定します。上下の矢印を使用して順序を指定できます。

Web アプリケーションが起動時にサービスを利用できるようにする必要がある場合 (つまり、Web サイトが初期化/起動中にサービスを呼び出す場合)、現在のように (コマンド ラインから WCF サービスを実行する) 方がよい場合があります。それ以外の場合は、これで目的の場所に移動できます。

添付されているのは、上記で概説したものと同様のソリューションを含むスクリーンショット (VS 2012) です。

ここに画像の説明を入力

于 2013-07-05T17:39:54.957 に答える