很多WCF的初学者是从之前的Web服务上转移过来的,他们非常怀念.asmx Web服务无配置的服务寄宿方式。你只需要在定义Web服务的时候再表示服务操作的方法上应用WebMethodAttribute特性就可以了,完全可以不需要手工进行相应的配置,因为Web服务运行时会自动为你添加默认的配置。但是对于WCF来说,在进行服务寄宿的时候,你必须以编程或者配置的方式为服务添加至少一个终结点,而终结点需要具备基本的ABC三要素。
对于最新版本的WCF编程人员来说,你也可以采用无配置的服务寄宿了,这主要得益于WCF提供的默认终结点机制。所谓默认终结点,顾名思义,就是在你尚未为寄宿的服务添加任何终结点的时候,WCF会自动根据服务的基地址(Base Address)为你创建一个或者多个默认的终结点。
我们举个简单的例子,现在我们具有一个服务叫做GreetingService的服务,它实现了两个服务契约IHello和IGoodbye。下面的代码片断提供了服务类型GreetingService和服务契约接口的定义。
1: [ServiceContract]
interface IHello
3: {
4: [OperationContract]
string name);
6: }
7: [ServiceContract]
interface IGoodbye
9: {
10: [OperationContract]
string name);
12: }
class GreetingService : IHello, IGoodbye
14: {
string name)
16: {
//省略实现
18: }
string name)
20: {
//省略实现
22: }
23: }