2

我正在使用 Visual Studio 2010,并且正在尝试创建一个包含 N 层架构的解决方案。

我对每一层都有一个项目

  • 常见的
  • 达尔
  • 商业 //
  • 服务 // WCF
  • 服务主机
  • 网络

上面列出的项目也以相同的顺序调用;所以Web与服务层对话,服务层与业务对话,然后企业与工厂对话,工厂项目负责与数据库对话。

我遇到的问题是在按 F5 启动 Web 项目之前设置我的项目 - ServiceHost(这只是 WCF 的自托管控制台)应该首先启动,以便当 Web 调用服务时;它已经启动并运行。

注:在珠三角;Web 和 WCF 将完全托管在不同的盒子上,所以这不会是一个问题,但对于在本地机器上开发 - 我需要上面的。

临时解决方案 - 我已从解决方案中排除 ServiceHost 项目,因此它不会通过 Web 启动,我正在从命令行外部运行 ServiceHost 可执行文件以启动并运行服务,然后我使用 F5 正常启动 Web 项目。

有人可以告诉我要实现上述目标我需要做什么吗?

4

1 回答 1

8

正如 Rajesh 建议的那样,您将多个项目设置为在多项目解决方案中启动。为此,请选择 DEBUG -> Set Startup Projects(或右键单击解决方案并从上下文菜单中选择 Set Startup Projects...。

这将为您提供一个窗口,其中列出了解决方案中的所有项目。选中“多个启动项目”单选按钮,并将要运行的每个项目的“操作”列设置为“启动”或“启动而不调试”。您可以使用向上和向下箭头指定顺序。

如果您的 Web 应用程序要求该服务在启动时可用(即,网站在其初始化/启动期间调用该服务),您最好像现在这样(从命令行运行 WCF 服务),否则这应该会让你到达你想去的地方。

附件是一个屏幕截图(VS 2012),其解决方案类似于您上面概述的解决方案:

在此处输入图像描述

于 2013-07-05T17:39:54.957 回答