整理一下思路,探讨WCF(一)
(前言)
我们习惯于使用VS2008中WCF的项目模板,于是Server端的创建基本是不用动脑子的。
又因为我们默认使用的MEX绑定,所以在Client端,我们在VS2008种右击项目,就可以轻松添加Server Reference,这也是不用费脑细胞的。
VS2008让我们把注意力foucus在业务逻辑上,而模糊了WCF的本质。
于是我经常犯糊涂,甚至连WCF最基本的概念有时都混淆。
清理了一下思路,大致有以下几个问题:并附上相应解答。
(一)傻瓜化WCF
先给出一个最简单的WCF Demo,Server端使用项目模板自动生成,Client端直接添加对这个Service的引用。代码下载:
先看项目WcfService3,也就是我们的Service。注意,这是一个WCF Service Application,如图所示:
它有几个特征:
1)Service托管在IIS中,当你按下F5的时候,你会发现桌面右下角多了一个icon,对,就在MSN那个icon的左边,这是基于文件的IIS。当然你也可以把这个Service扔到IIS控制台中。
2)有一个svc。你可以把它当作WebService中的asmx文件。
3)在Web.config中存在这样的绑定:
<endpoint address="" binding="wsHttpBinding" contract="WcfService3.IService1">
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
其中第一个endpoint是干正事的,而第2个是MEX绑定,用来交换元数据的。
再看项目ConsoleApplication1,这就是一个Client。
因为Server中带有MEX绑定,所以,我们在Client中,可以右击ConsoleApplication1项目,选择Add Service Reference,敲入上述Service的地址,如http://localhost:51166/Service1.svc,就可以添加对这个Service的引用了,如下图所示:
一切运行良好。但是,我要说,VS2008的易操作性,使我们把WCF想得太简单了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2007-10-23 我也设计模式——16.Interpreter