Visual Studio:同时开发WCF客户端和服务器

10

我需要开发一个WCF服务器(基本上是在IIS中运行的Web服务)和一个访问该服务的客户端应用程序。我在同一Visual Studio(2008)解决方案中拥有客户端和服务器项目。

在开发期间,连接客户端到服务器的推荐方法是什么?

我立即想到了两种可能的解决方案:一种是在每次更改后将服务器项目部署到某个IIS,另一种是启动两个Visual Studio实例,并为服务器项目的(集成于Visual Studio的)Web服务器使用固定的TCP端口。

由于这些选项都不太优雅,所以我在想是否可能忽略了明显的“正确方式”来做到这一点...

2个回答

21

我通常是这样做的:
- 在解决方案文件上右键单击,选择设置启动项目...
- 选择多个启动项目并为客户端和服务器项目选择启动,将其他项目设置为

现在两个项目将在启动时运行,您将能够调试它们。


1

因为我的项目有很多WCF服务,我不想运行太多实例的VS进行调试,这是我的解决方案:

如果你可以接受使用本地IIS,那么你可以考虑这个方法。

对于每个WCF服务,我都创建了一个Web Site项目。
这些网站项目也作为本地IIS中的Web文件夹共享。例如http:\ mylocalmachine \ WCFService1 \ servicefile.svc
在我的WCF客户端web.config中,服务的URL如上所述指定。例如(http:\ mylocalmachine \ WCFService1 \ servicefile.svc)
由于我不想每次更改服务时手动部署,因此在每个WCF Service项目的后期构建中,我有一个后期构建任务,将bin目录的内容复制到相应WCF服务的网站的bin目录中(后期构建的一次性设置)。
我的文件夹结构是这样的,对于每个服务项目,都有一个位于同一级别的服务主机(网站)项目,因此后期构建也非常简单。
当我运行我的WCF客户端(F5)时,服务项目被编译,它们的内容被复制到网站的bin目录中(即自动部署到IIS),我可以通过进入代码来调试任何服务,因为我的服务与我的WCF客户端在同一个解决方案中。
这种方法的另一个优点是,我的调试(至少是服务的调试)也使用与我的生产环境类似的IIS。
编辑:我不会将服务主机项目(网站)放在我的解决方案中,否则当运行我的WCF客户端时,VS会为它们中的每一个打开一个cassini实例,这很烦人,而且我也不需要或使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接