完全不使用配置文件构建和使用WCF服务

2009-05-12 22:23:06来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

只使用代码而不用配置文件的情况不适合IIS为宿主的情况,IIS宿主必须使用配置文件配置WCF的ServiceHost.

1、 服务端

1.1. 准备Contract和实现Contract的服务

很简单的一个Contract(Interface)和实现这个Contract(实现这个接口的类)的服务。

这是VS2005中使用add new item,选WCF Service后自动生成的一个模板例子服务代码。

以下为引用的内容:

[ServiceContract()]
 
  public interface IService

  {

  [OperationContract]

  string MyOperation1(string myValue);

  }

  public class Service : IService

  {

  public string MyOperation1(string myValue)

  {

  return "Hello: " + myValue;

  }

  }

1.2. 建立ServiceHost

一般使用public ServiceHost(Type serviceType, params Uri[] baseAddresses)构造方法建立ServicesHost.

参数:  

以下为引用的内容: Type serviceType —— 为实现了某些Contract的类的类型,为这个服务主机要host的服务。

  params Uri[] baseAddresses —— 为任意数量的baseAddress.

  Uri baseAddress = new Uri("http://localhost:8080/WCFService/Service");

  //Instantiate new ServiceHost

  myServiceHost = new ServiceHost(typeof(Service), baseAddress);

一个ServiceHost内只能驻留一个Service类,但是这个Service类可以实现多个Contract,每个Contract都能通过一个或多个(不同的bind)Endpoint向客户端暴露。

进程、应用程序域和ServiceHost

Dotnet出现之前,资源的分配是以进程为单位,进程是应用程序的安全边界,进程之间不能直接访问,一个进程的崩溃也不会直接影响到别的进程。

但是,进程有个缺点,为了维护进城的安全上下文,耗费的资源很大。

后来引入了线程,一个进程中可以包含多个线程,同一进程里的线程共享资源、切换方便,但是线程不具有隔离性,一个线程的崩溃将会影响到其他线程。

Dotnet引入了应用程序域,是介于进程和线程之间的逻辑概念,它既有进程的安全隔离性的优点,又有线程轻巧快捷的特性。应用程序域跟进程一样,一个应用程序域不能直接访问另一个应用程序域的资源,一个应用程序域的崩溃也不会影响其他应用程序域。同时应用程序域占用的资源比进程少的多,应用程序直接的切换也很快捷。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:vb.net通过app.config来改变编译路径

下一篇:VB.net2008精彩实例,窗体应用技巧