【1】基本概念:
Fileless Hosting也就是IIS hosting WCF Service without an SVC file ,中文意思,也就是无svc文件托管WCF服务。
【2】服务实例化:
我们知道在4.0之前的版本,创建IIS托管的WCF服务程序,默认都会生成一个对应的svc文件。这个和Asp.net Web服务的ASMX文件作用类似,也就是设置一些重要的功能,比如code-behind.代码后置。在svc文件里,我们可以看到一些主要的信息:
Configuration-based activation supports activation over both http and non-http protocol. It requires extensions in the relatativeAddress i.e. .svc, .xoml or .xamlx. You can map your own extensions to the know buildProviders, which will then enable you to activate service over any extension. Upon conflict, the <serviceActivations> section overrides .svc registrations.
这种通过配置设置的激活映射,支持http和非http协议。我们需要在相对地址relatativeAddress 里扩展文件名,例如.svc、.xoml 或.xamlx。我们也可以定义自己的处理扩展组件,然后在这里配置,那么WCF也会做类似的映射。为了避免冲突,我们在配置文件里定义的<serviceActivations>会代替svc的内容。也就是配置文件的设置优先级会比较高。
【6】开发过程详解:
【6.1】创建一个WCF服务项目:
这里就是用Visual Studio直接创建一个默认的WCF服务程序,也就是IIS托管的项目类型。服务契约和服务类型的定义非常简单:
public class Service : IService
{
public void DoWork()
{
}
}
[ServiceContract]
public interface IService
{
[OperationContract]
void DoWork();
} 这里默认WCF会创建一个附加的svc文件。我们这里手动删除。
【6.2】配置服务激活选项:
这里要配置服务激活相关的选项: