WCF服务托管全解析
1. 服务托管基础
在服务托管中,初始化ServiceHost时,需要指定服务类型和一个或多个端点。通过声明式配置ServiceHost,可以避免代码中硬编码基地址和端点,示例如下:
using (ServiceHost host = new ServiceHost(typeof(HelloIndigo.HelloIndigoService))) { host.Open(); Console.WriteLine("Press <Enter> to terminate the Host application."); Console.WriteLine(); Console.ReadLine(); }使用声明式配置在开发周期中管理部署到不同服务器(如分段、测试和生产服务器)更加容易,可使用部署脚本修改端点地址和端口分配来实现自动化。但缺点是任何文本编辑器都可修改配置设置,难以防止不必要的更改。
2. 基地址的使用
若为每个服务端点指定完全限定的URI,则初始化ServiceHost时不需要基地址。若向ServiceHost构造函数提供基地址,则可选择为端点地址提供相对URI,示例如下:
using (ServiceHost host = new ServiceHost(typeo