WCF学习之一(2):控制台应用作为服务宿主(跨机器/网络)

通过IIS作为宿主服务:
将Client,Contracts,Services三个项目引入到新的项目中去(不再需要hosting来宿主服务):
1、 为WCF服务创建.SVC文件:
.svc文件的作用:类似于ASP.NET web 服务中的.asmx文件,他是客户端通过访问这些文件来访问web服务的调用。WCF就是通过将服务的一个.svc文件部署到IIS站点中,供客户端来调用和使用。
在Services项目中添加calculatorService.svc,并且引入服务的位置:<%@ ServiceHost Service="Services.Calculate"%>
2、 为WCF 服务添加配置文件:
在寄宿进程中我们将配置文件放在hosting项目内,这里我们把IIS的配置文件放在Services项目内:web.config(类似于寄宿进程的配置文件)。
唯一与进程文件配置不同的是:这里是承载于IIS,他的服务地址就是IIS中.svc的服务地址。所以它的终结点就不用指定address,也就是说它的元数据呈现地址就是http://localhost/CalculatorService/CalculatorService.svc 无需再指定(可以指定一个名字)。

特别需要指定的是:要修改services的生成目录为bin,默认的为 bin\Debug否则的话了,IIS就无法找到服务,要报错

WCF学习之一(2):控制台应用作为服务宿主(跨机器/网络)
 
重新生成,输入http://localhost/CalculatorService/CalculatorService.svc就可以看到服务元数据。
3、 在client项目中重新生成service References:输入的地址为:http://lixinyi/CalculatorService/CalculatorService.svc?wsdl,然后再在Main函数调用,同样可以实现类似于进程寄宿的功能。

 

 源代码例子:http://files.cnblogs.com/lxy131/WCF%e5%ad%a6%e4%b9%a0Demol2_calculatorService2.rar

 

你可能感兴趣的:(WCF)