运用WCF3.5实现RESTful Web服务及IIS部署

实现:

一般做法是:将服务接口上添加一系列特性,比如OperationContract特性等等。但是要实现RESTful Web服务,还要添加[WebGet]特性,由于本特性只能应用于GET请求,所以如果想用POST请求,那么还要添加[WebInvoke]特性。

例如:

[OperationContract]
        [WebGet(UriTemplate 
=   " / " )]
        
string  HelloWorld();
        

        [OperationContract]
        [WebInvoke(UriTemplate 
=   " / " , Method  =   " POST " )]
        Result GetDataUsingDataContract(CompositeType composite);

添加后,用一个服务类去实现该接口即可。但是如果仅此而已,那么岂不是要小看微软?

接下来,还要在此类中声明ServiceHostFactory。这样以来基本上就能在ASP.NET Development Server中运行起来。

用各种测试工具测试,基本上不会出啥问题。

 

但不要高兴的太早了。能在ASP.NET Development Server中正确运行,不等于也能在IIS中正确运行。如果不做任何手脚,那么一旦将服务架设到服务器上后,会发现改服务根本就没有正确显示过!其实在IIS中配置一下config即能万事大吉。即将终结点地址去除,由原来的人工指定终结点地址,修改为让人家IIS指定并管理,并且IIS人家还不需要在IIS设置任何的通配符,你想想这多省心!!剩下的,你啥也不需干预,只管安心睡觉,此服务就能在IIS的管理下好好工作了。

 

最终RESTful形式的Web服务地址会是这个样子:http://********/*****.svc/***。

 

你可能感兴趣的:(Restful)