WCF学习-创建自己的WCF程序(ASP.NET3.5/C#)
之前看了很多文章,发现很多人在介绍WCF的过程中使用的都是WinForm程序来做为Sample的,其实做Web开发的人还是占相当大一部分的。随着微软VS2008的发布,更强化了WCF的市场位置。面向服务架构(SOA),而WCF正是基于这一理念而创建成立的。我们平时总是说SOA,大家也都知道SOA这个名字,而真正在开发应用程序时,也未免逃避不了SOA的影子,但什么样的架构才算是真正的采用了SOA呢。这也是我和大家都要共同学习的地方。WCF加快了我们开发基于SOA架构的程序效率。采用了WCF,便在很大程度上实现了SOA化。现在市场上也有很多厂家宣传自己的产品已经完全的实现了SOA化,也不乏这些厂家的根基就是WCF。
好了,废话不多说了,现在开始我们学习的第一步:创建自己的WCF程序。
第一步:准备环境
系统要求:Windows2003 Server/Windows XP
环境要求:VisualStudio2008(WCF是在.NetFramework3.0之后才发布的)
运行效果:采用Javascript调用WCF Service方式
第二步:创建程序
首先我们先创建一个解决方案,名称为WCFSample.sln.
我们在安装完成VS2008后,在创建新项目时会出现如下提示框:
《图片1 WCF_1.1.gif》
创建完解决方案后,我们添加新项目,名称为WCFSample,此时我们创建的不是普通的ASP.NET Web Application,而是WCF Service Application
《图片2 WCF_1.2.gif》
创建完成后,我们的项目文件基本就完成了,这也就是WCF的基本框架。
此时项目会自动产生几个文件,如IService1.cs, Service1.svc, Service1.svc.cs. 这几个文件都是模板文件,里面包含一些Sample的code.我们以后可以仿照这个Sample完成我们自己的service.
<一>.文件介绍:
IService1.cs文件:这个文件是我们用来定义ServiceContract的接口文件。
Service1.svc文件:这个文件是我们用来host WCF service的文件,默认情况下这个文件是和Service1.svc.cs文件绑定到一起的,我们还可以分别创建svc文件和cs文件,然后使用ServiceHost来绑定这两个文件。(后面我会对ServiceHost做个简单介绍)
Service1.svc.cs文件:这个文件中我们会定义DataContract,这是我们在Service中用来交换的数据。
关于Contract的概念,我会在后面做详细介绍,在此先不做过多介绍。
<二>.我们需要增加一个page文件,新增item,增加一个AJAX WebForm. 然后配置页面中scriptmanager的servicepath, code如下
Code
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/Service1.svc" />
</Services>
</asp:ScriptManager>
<三>. 我们呢再关注一下Web.Config文件,我们会发现在Web.Config文件中增加了一个字节配置(没有的话可手动修改,默认是有的):
Code<system.serviceModel>
<services>
<service behaviorConfiguration="WCFSample.Service1Behavior" name="WCFSample.Service1">
<endpoint address="" binding="webHttpBinding" contract="WCFSample.IService1" behaviorConfiguration="MyEndPointBehavior"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<bindings>
<webHttpBinding>
<binding name="https">
<security mode="Transport"/>
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="MyEndPointBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="WCFSample.Service1Behavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
我想在这里大家需要注意的是,第一个EndPoint节点中binding,我们没有采用WsHttpBinding,而是采用了webHttpbinding.是因为我们的要求是采用javascript调用WCF服务,而这样的话,我们就需要在EndPoint的behaviorConfiguration中指定Endpointbehavior, 并且在behavior中enableWebScript,这样的话我们才能通过script调用到WCFService,不然的话,在调用过程中就会出现错误信息,提示:对象未定义。
WebConfig配置完毕后,我们访问URL:http://localhost/wcfsample/js 便可得到客户端代理脚本,里边包含着在客户端如何调用service的脚本。
这些新增的配置节都是为WCF service而增加的,关于每个配置节的作用和意思我都会在后面加以介绍。
<四>. 在page中增加调用Service的客户端脚本
Code
<script type="text/javascript">
function InvokeWCF()
{
var service = new WCF.ServiceTest();
service.GetData(12,OnSucceeded,OnFailed,true);
}
function OnSucceeded(result)
{
alert('Invoke succeeded; return value:'+result.toString());
}
function OnFailed()
{
alert('Invoke Failed');
}
</script>
OK, 点击button, 调用成功,如下图:
《图片 WCF_1.3.gif》
示例代码:因目前无法上传文件及图片,现无法提供下载链接,待能上传后,立即更新
转载于:https://www.cnblogs.com/yanghuaizhi1982/articles/1351219.html
- 点赞
- 收藏
- 分享
- 文章举报
- ASP.NET 3.5核心编程学习笔记(55):自定义扩展程序控件的创建
- 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序(不断更新)
- 一步一步学习asp.net mvc 1.0 创建NerdDinner程序Part2(转载)
- ASP.NET 3.5核心编程学习笔记(45):HTTP处理程序之高级编程
- ASP.NET 3.5核心编程学习笔记(42):HTTP处理程序的编写之建立数据报表
- 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 3(转载)
- C# ASP.NET 通用权限管理系统组件源码中WCF例子程序服务器端运行详细配置参考
- C# ASP.NET 通用权限管理系统组件源码中WCF例子程序客户端运行详细配置参考
- ASP.NET 3.5核心编程学习笔记(41):HTTP处理程序与HTTP模块
- 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序
- HOW TO:在 Visual C# .NET 中创建自定义 ASP.NET 配置节处理程序
- C# ASP.NET 通用权限管理系统组件源码中WCF例子程序服务器端运行详细配置参考
- 一步一步学习asp.net mvc 1.0 创建NerdDinner程序Part1(转载)
- ASP.NET 3.5核心编程学习笔记:针对AJAX应用程序的WCF服务
- 学习SQL Server 第一天对SQL Server的操作遇到的一些问题和对存储过程的创建和用ASP.net(C#)调用的学习体会!
- 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序 - 强烈推荐!!!
- 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序
- 使用ASP.NET MVC(C#)15分钟内创建一个电影数据库程序
- ASP.NET 3.5核心编程学习笔记(44):HTTP处理程序的编写之从数据库加载图像
- C# ASP.NET 通用权限管理系统组件源码中WCF例子程序客户端运行详细配置参考