WCF功能强大自不必说,但是其配置也着实令人害怕,那里面涉及到的名词很多,有时弄完了一遍,过些日子又忘了。在这里我说一下最简单使用代码配置的形式,便于理解最基本要素。
host = new ServiceHost(typeof(SrvUnityRec),new Uri[] { new Uri("http://localhost:5200")});
host.AddServiceEndpoint(typeof(ISrvUnityRec), new BasicHttpBinding(), "srv");
host.Open();
ok了。其实就这么简单。当然事先你要准备好服务的协议(Contract)和服务类,就是代码里面的ISrvUnityRec和SrvUnityRec,名字什么的不重要,你自己定,我这里只是拿现有开发的东西举个例子,Contract必须是接口,你应该知道的哦。
这三句代码可以放在一个控制台程序里或Winform程序里,自己Host服务。想把它放在IIS上可不行,去别的地方找找看怎么弄吧。这三句的意思是首先建立一个服务的宿主,带上基础地址。然后在宿主上加一个终结点,指明Contract,Binding和Address,即ABC。最后打开宿主。
上面三句话其实就可以工作了,但是,服务一般是需要被别人看见的,就是要让别人了解,这样仅有上面这三句是不够的。要想让这个服务支持被别人发现,必须加上ServiceMetaDataBehavior,如下:
host = new ServiceHost(typeof(SrvUnityRec),new Uri[] { new Uri("http://localhost:5200")});
host.AddServiceEndpoint(typeof(ISrvUnityRec), new BasicHttpBinding(), "srv");
var smBeh = new ServiceMetadataBehavior();
smBeh.HttpGetEnabled = true;
host.Description.Behaviors.Add(smBeh);
host.Open();
这样,在浏览器里输入http://localhost:5200就能看到关于这个服务的信息了。也可以让客户端找到服务并加上该服务的引用,真正能够使用了。
网友评论