WCF系列:无配置文件实战与服务构建

需积分: 9 4 下载量 125 浏览量 更新于2024-08-01 收藏 4.23MB DOC 举报
"WCF系列教程整理了如何在不使用配置文件的情况下创建和使用WCF服务。这种做法适用于非IIS环境,因为在IIS中,服务主机必须通过配置文件来设置。以下步骤详细介绍了这一过程。 1. **服务端开发** - **定义Contract和实现**:首先,创建一个简单的接口`IService`和其实现该接口的类`Service`。VS2005提供了WCF Service模板,可通过添加新的项目并选择WCF Service快速生成此类代码。例如,`IService`接口包含一个操作`MyOperation1`,服务类实现这个接口并提供具体的方法实现。 ```csharp [ServiceContract()] public interface IService { [OperationContract] string MyOperation1(string myValue); } public class Service : IService { public string MyOperation1(string myValue) { return "Hello: " + myValue; } } ``` - **创建ServiceHost**:使用`ServiceHost`类创建服务主机,传入服务类型(`typeof(Service)`)和基础地址数组(`Uri[] baseAddresses`)。这里使用的是`http://localhost:8080/WCFService/Service`作为基础地址。一个`ServiceHost`实例只能托管一个服务类,但该服务类可以实现多个Contract,每个Contract通过不同的绑定(bind)Endpoint暴露给客户端。 2. **进程隔离与资源管理**: - **进程隔离**:在.NET Framework早期,资源管理是基于进程级别的,这意味着每个进程有独立的内存空间和安全限制。进程间通信受到限制,且一个进程的崩溃不会影响其他进程的稳定性。 - **进程与ServiceHost的关系**:虽然一个ServiceHost实例对应一个进程,但这并不意味着所有ServiceHost共享同一进程。每个ServiceHost实例可以在其自己的进程或应用程序域中运行,这取决于部署和配置策略。 3. **配置文件的必要性与替代方案**: - 在IIS环境下,由于IIS对服务的管理需求,通常会使用配置文件(如Web.config或App.config)来详细配置ServiceHost的行为,如绑定、认证、授权等。但在非IIS情况下,如桌面应用程序或者简单的测试环境,可以避免配置文件,仅通过代码控制服务的启动和连接。 4. **总结**: WCF系列教程的第一部分着重展示了如何在不依赖配置文件的情况下,使用纯代码方式创建和运行一个基础的WCF服务。这对于理解和掌握WCF的核心概念和组件工作原理非常有帮助,特别是对于那些希望简化部署流程或者在非标准环境中使用WCF的开发者来说。随着后续章节的深入,还将涵盖更多关于配置文件的使用、安全性和高级功能等内容。