在前面的基础上,我们来开始第二天编写 客户端 的东西,不过讲之前,我想告诉大家的是:

这个简单的SOA的架构,我们直接通过wcf 调用到 后台的方法, 而中间没有使用 C#代码,大大减少我们客户端的代码,

同时比传统的三层架构 更加灵活,更加方便。

别人肯定会说?前台 完全不使用C#代码也能调用到 后台的服务,这在以前 是不可能 想象的。但是现在我实现了它!!!

大家来看看吧!

第一步:

我们要导添加 server的引用(重要),接下来我们要修改我们的配置文件了

如下图:

<?xml version="1.0" encoding="utf-8"?>

<!--
有关如何配置 ASP.NET 应用程序的详细信息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
--> <configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" /> </system.web> <connectionStrings>
<add name="vbk" connectionString="Data Source=192.168.2.227;database=Vbk;uid=sa;pwd=vosung"/>
</connectionStrings>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="WCFService.WCFServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors> <endpointBehaviors>
<behavior name="Client.WebServiceAspNetAjaxBehavior">
<webHttp /> </behavior> </endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
<services>
<service name="Server.webService" behaviorConfiguration="WCFService.WCFServiceBehavior">
<endpoint address="operate" behaviorConfiguration="Client.WebServiceAspNetAjaxBehavior"
binding="webHttpBinding" contract="Server.IService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
</configuration>

可能看到我的博客的人是对WCF完全不懂的人,但是我现在有必要对我的配置进行说明:

1. 看到  这个节点了吗?<system.serviceModel>,没错 ,这里面的所有配置都是WCF的所有配置。

大家在仔细看,在这个节点下,有三个比较大的 子节点   <behaviors>(可有可无),  <services>(必须有),

其实还有一个是<binding>(可有可无),这里我们可能没有看到。

2.大家来重点看下 服务的配置:

<services>    --服务配置的开始
             <service  name="Server.webService"     --(必须配置)Server表示 命名空间,webService表示对应的类

(而这个类必须带有 [ServiceContract]属性,或者 实现 带有[ServiceContract]属性的接口)

behaviorConfiguration="WCFService.WCFServiceBehavior"  --这个可以在行为中配置看到

>
                  <endpoint address="operate"       -- 表示终结点配置(必须配置),name 表示终结点的名字,用来区分不同的终结点

behaviorConfiguration="Client.WebServiceAspNetAjaxBehavior"       --这个可以在行为配置中可以找到
                    binding="webHttpBinding"      --(必须配置) 这个是绑定,如果使用web 访问,必须要 使用webHttpBinding 方法的绑定

contract="Server.IService" />    ---(必须配置) 契约,其实是配置  接口的位置, 也是  命名空间.接口名
            <endpoint address="mex"        ---表示元数据, 如果不配置,访问时将不能 得到数据源 ,元数据的所有配置 都是 这个写的

binding="mexHttpBinding"           --绑定根据前面的绑定选择

contract="IMetadataExchange" />     ---必须的,只能写IMetadataExchange
            </service>
        </services>

绑定看完之后 ,我们来看待行为 配置:

<behaviors>    --行为配置的开始
          <serviceBehaviors>   --开始配置服务的行为
            <behavior name="WCFService.WCFServiceBehavior">--

配置一个服务行为,这里的行为可以在  <service >通过behaviorConfiguration 中被调用,请看上面的服务的行为配置
          <serviceMetadata httpGetEnabled="true" />-- 表示元数据,表示我们可以直接通过访问地址得到得到 数据源
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
          </serviceBehaviors>-- 服务行为配置介绍
          
            <endpointBehaviors>    --终结点 行为配置的开始
                <behavior name="Client.WebServiceAspNetAjaxBehavior">  --与上面的的终结点行为一致
                  <webHttp />                   --这个表示允许 通过 web  的HTTP的请求进行访问,不过不配置则不能访问              
                </behavior>          
            </endpointBehaviors>         --终结点行为配置结束
        </behaviors>

到这里位置,wcf 服务配置 就只差 最后一步了,我们打开WebService.svc,我们可以看到

修改如下Service="Server.webService"  这里跟你刚才配置的 <Service> 的 name 属性一致(重要)

同时去掉 codebehind ,结果如下:

<%@ ServiceHost Language="C#" Debug="true" Service="Server.webService" %>

然后 我们来 直接通过 浏览器直接浏览WebService.svc  ,

表示已经成功了,下来我们来分别访问

localhost:30543/WebService.svc/operate  (如果出现 没有找到终结点表示成功)

localhost:30543/WebService.svc/operate/select(如果出现没有 找到此方法 也表示 配置都是成功的)

jquery 直接调用 wcf,面向服务的SOA架构 ( 第二天)的更多相关文章

  1. 面向服务的SOA架构与服务总线ESB

    之前的软件的开发主要是面向对象的编程架构 方法---对象---模块---组件---服务,感觉现在的开发的主流的软件架构的设计思想都是对其进行重用,只不过范围越来越大,有一个系统之间进行通信到多个系统之 ...

  2. jquery 直接调用 wcf,面向服务的SOA架构 ( 第三天)

    所谓万事 具备,只欠东风了!! 接下来就是 wcf 的调用, 首先 在客户端下,随便 写一个 html页面,然后写入如下方法: <script src="scripts/jquery. ...

  3. WCF入门教程(四)通过Host代码方式来承载服务 一个WCF使用TCP协议进行通协的例子 jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding System.ServiceModel.WSHttpBinding协议 学习WCF笔记之二 无废话WCF入门教程一[什么是WCF]

    WCF入门教程(四)通过Host代码方式来承载服务 Posted on 2014-05-15 13:03 停留的风 阅读(7681) 评论(0) 编辑 收藏 WCF入门教程(四)通过Host代码方式来 ...

  4. 面向服务的体系架构SOA

    面向服务的体系架构SOA 序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微 ...

  5. 面向服务的体系架构(SOA)

    面向服务的体系架构(SOA) 1.面向服务的体系架构(SOA) 面向服务的架构(service-oriented architecture)是Gartner于2O世纪9O年代中期提出的面向服务架构的概 ...

  6. jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding

    Jquery ajax调用WCF服务 例子效果如下:原界面 点击按钮GetList get后,通过指定的Url获取数据添加到table 新建一个控制台项目,添加IContract.cs,DBServi ...

  7. SOA——面向服务的体系架构

    上一篇博文中提到了"紧耦合"的现象.怎样解决?SOA.採用面向服务的体系架构. 一.What? SOA=Service-oriented Architecture面向服务的体系结构 ...

  8. 一个通过JSONP跨域调用WCF REST服务的例子(以jQuery为例)

    JSONP(JSON with Padding)可以看成是JSON的一种“使用模式”,用以解决“跨域访问”的问题,这篇简单的文章给出一个简单的例子用于模拟如何通过jQuery以JSONP的访问调用一个 ...

  9. 说说面向服务的体系架构SOA

    序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微软的这些技术也确实推动着面 ...

随机推荐

  1. iOS 7 新特性

      iOS7更新了很多引人注目的功能.用户界面完全重新设计了.iOS7为开发2D,2.5D游戏引入了全新的动画系统.加强多线程,点对点连接,以及许多其他重要的功能让iOS7成为有史以来最有意义的一次发 ...

  2. JAVA 公众微信的开放源码项目管理合作伙伴招募的版本号

    大家好:       jeecg开源社区.现在正在进行"JAVA 开放源码的版本号项目微信公共账号"工作,有兴趣的朋友一起參与. 截止时间:20140510 採用技术: 1. JE ...

  3. 探索Windows Azure 监控和自动伸缩系列2 - 获取虚拟机的监控定义和监控数据

    上一篇博文介绍了如何连接Windows Azure: http://www.cnblogs.com/teld/p/5113063.html 本篇我们继续上次的示例代码,获取虚拟机的监控定义和监控数据. ...

  4. 跳转表C语言,不比redis版本号

    本来跳表的原理很easy的(相对于红 - 黑树),但国庆间歇性地搞5天才捞起来-- 我学会了跳之前写表的链式结构完全基于,我看着写的过程中redis实现,它的每个键列都是用数组来表示的.细致想了想发现 ...

  5. 【转】Android内存机制分析2——分析APP内存使用情况

    上面一篇文章说了Android应用运行在dalvik里面分配的堆和栈内存区别,以及程序中什么代码会在哪里运行.今天主要是讲解一下Android里面如何分析我们程序内存使用情况.以便后续可以分析我们程序 ...

  6. sdut 上机练习8面向对象编程(对象的数组)

    上机练习8面向对象编程(对象的数组) Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 利用类对象数组完毕N个学生数据(学号是字符串类型.成绩是整型)的输入 ...

  7. Nginx搭建反向代理服务器过程详解(转)

    一.反向代理 我们都知道,80端口是web服务的默认端口,其他主机访问web服务器也是默认和80端口进行web交互,而一台服务器也只有一个80端口,这是约定俗成的标准. 我们来看下面两个场景: 1.服 ...

  8. 《Swift程序设计语言》中国翻译和学习笔记page23

    ·<The Swift Programming Language>中文翻译及读书笔记,附件中为英文原版教程 因21页之前内容和技术关系不大,不做翻译整理,从第21页開始 · 页 1 本页主 ...

  9. C# 抽象类其中创建一个静态方法

    </pre><pre name="code" class="csharp"><span style="font-size ...

  10. BZOJ 2947 Poi2000 促销 set

    标题效果:特定n天,首先插入一些每天.然后去掉最高值和最低值,要付出最大的值-至少值价格.乞讨n总天数支付的价格 堆/段树/平衡树光秃秃的标题 #include <set> #includ ...