当前位置: 首页 > news >正文

手机网站用什么程序做wordpress防注册插件

手机网站用什么程序做,wordpress防注册插件,校园文化设计公司公司排名,阳春建设局网站老老实实学WCF 第二篇 配置WCF 在上一篇中#xff0c;我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它。先回顾一下服务端的代码#xff1a; [csharp] view plaincopy using System; using System.Collections.Generic; using System.Linq; using System.Te… 老老实实学WCF 第二篇 配置WCF   在上一篇中我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它。先回顾一下服务端的代码   [csharp] view plain copy using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;    using System.ServiceModel;  using System.ServiceModel.Description;    namespace HelloWCFService  {      class Program      {          static void Main(string[] args)          {              Uri baseAddress  new Uri(http://localhost:8000/MyService);                ServiceHost host  new ServiceHost(typeof(HelloWCFService), baseAddress);                host.AddServiceEndpoint(typeof(IHelloWCFService), new WSHttpBinding(), HelloWCFService);                ServiceMetadataBehavior smb  new ServiceMetadataBehavior();              smb.HttpGetEnabled  true;              host.Description.Behaviors.Add(smb);                host.Open();                Console.WriteLine(Service is Ready);              Console.WriteLine(Press Any Key to Terminate...);              Console.ReadLine();                host.Close();                        }      }        [ServiceContract]      interface IHelloWCFService      {          [OperationContract]          string HelloWCF();      }        public class HelloWCFService : IHelloWCFService      {          public string HelloWCF()          {              return Hello WCF!;          }      }  }   所有的这些代码都写在program.cs中干净清爽。   我们稍微审视一下这段程序会发现我们用了很多的代码来定制服务的特性例如基地址、终结点、绑定、行为等。这些都叫做配置。而真正对服务的本身的定义是很少的(主逻辑就是返回一个字符串而已)因此我们不难看出WCF的编程中配置占了很大的比重。   WCF的配置选项是很多的我们这里只考虑最简单的情况。我们在定义和实现了服务协定后至少应该做哪些配置才能让服务运行起来呢 (1) 依据服务实现类配置一个服务(ServiceHost)。 (2) 指定一个基地址(如果终结点中指定了绝对地址这步可以省略)。 (3) 建立一个终结点并为其指定地址、绑定和服务协定。 (4) 建立一个元数据交换终结点。 (5) 为服务添加一个行为来启用元数据交换。 虽然在.Net 4.0下微软提供了简化配置我们甚至可以一行配置都不做但是为了搞清楚配置的基本原理我们暂时不考虑简化配置的情况。   以下这些配置是我们必须要做的我们从代码中可以看到以上几种配置相应语句   建立基地址 [csharp] view plain copy Uri baseAddress  new Uri(http://localhost:8000/MyService);   建立服务 [csharp] view plain copy ServiceHost host  new ServiceHost(typeof(HelloWCFService), baseAddress);   建立终结点并指定地址、绑定和服务协定 [csharp] view plain copy host.AddServiceEndpoint(typeof(IHelloWCFService), new WSHttpBinding(), HelloWCFService);   添加元数据交换终结点并添加启用元数据交换行为 [csharp] view plain copy ServiceMetadataBehavior smb  new ServiceMetadataBehavior();  smb.HttpGetEnabled  true;  host.Description.Behaviors.Add(smb);   看上去清楚明白但是只是看上去很美这样的配置方式存在弊端例如基地址如果当服务部署之后迁移了服务器基地址发生变化我们必须修改源程序并重新 编译重新部署才能实现这个要求。对于其他的配置选项亦是如此。这对于产品环境是不能接受的。好在WCF提供针对这个问题的解决方案配置文件。   我们把对服务的配置写在应用程序的配置文件中(IIS程序是web.config 其他程序是app.config)当配置发生改变的时候我们就不用重新编译程序集了。   配置文件的写法很复杂有很多选项为了便于上手我们先从跟本例相关的选项开始。   在配置文件中根节是configuration所有的配置元素都位于其中。对于WCF服务的配置部分最外层的节是system.serviceModel所以配置文件中至少先应该是这个样子 [html] view plain copy ?xml version1.0 encodingutf-8 ?  configuration    system.serviceModel          /system.serviceModel  /configuration   现在我们准备开始配置一个服务服务配置元素标签为services/services 是system.serviceModel的子节在一个宿主上可以承载许多服务每一个服务 用service/service来配置它是services的子节。在配 置service前我们还要先添加一个基地址配置基地址用baseaddress描述他 是host的子节host是service的子节。 晕了么...慢慢来。 先把services节加上这里可以容纳许多服务注意这个是带s的 [html] view plain copy ?xml version1.0 encodingutf-8 ?  configuration    system.serviceModel      services              /services        /system.serviceModel  /configuration   在services的怀抱中我们添加一个service这是我们要配置的服务本体注意这个是不带s的 [html] view plain copy ?xml version1.0 encodingutf-8 ?  configuration    system.serviceModel      services        service                  /service      /services        /system.serviceModel  /configuration   在service中添加一个基地址先添加一个host再添加一个baseaddress [html] view plain copy ?xml version1.0 encodingutf-8 ?  configuration    system.serviceModel      services        service          host            baseAddresses              add baseAddresshttp://localhost:8000/MyService/            /baseAddresses          /host        /service      /services        /system.serviceModel  /configuration     到这里基地址的部分已经完成对应代码中的位置你找到了么 服务的配置还差一点我们在代码中为服务指定了实现类型在配置文件中如何指定呢就用service标签的name属性指定的时候后要用完全限定名(带着命名空间) [html] view plain copy ?xml version1.0 encodingutf-8 ?  configuration    system.serviceModel      services        service nameHelloWCFService.HelloWCFService          host            baseAddresses              add baseAddresshttp://localhost:8000/MyService/            /baseAddresses          /host        /service      /services        /system.serviceModel  /configuration   我这个例子举的不好了命名空间和实现类型是一个名字要注意区分。   到这里服务也配置完了对应代码的位置翻上去找一下。 接下来配置终结点终结点用endpoint元素表示正如代码实现中的参数在配置中也需要一一指定地址、 绑定和服务协定接口分别用address、binding和contract属性来表示当然endpoint也 是service的子节毕竟他是属于服务的嘛。 [html] view plain copy ?xml version1.0 encodingutf-8 ?  configuration    system.serviceModel      services        service nameHelloWCFService.HelloWCFService          host            baseAddresses              add baseAddresshttp://localhost:8000/MyService/            /baseAddresses          /host          endpoint addressHelloWCFService bindingwsHttpBinding contractHelloWCFService.IHelloWCFService /        /service      /services        /system.serviceModel  /configuration   这里用了相对地址HelloWCFService他会和基地址组合在一起(排在后面)成为终结点的地址这里也可以指定 为空字符串此时基地址(即服务地址)就是终结点的地址还可以指定一个绝对地址那样他会覆盖基地址基地址对这个终结点来说就不起作用了这里可 以看出终结点的地址是独立的可以是基地址的子地址也可以独立使用另一个地址他们之间没有必然的链接。 这里的contract 同service里面一样也要使用完全限定名称(带上命名空间)。 注意在使用IIS承载的时候必须使用相对地址也就是终结点必须是基地址的子地址这是由IIS的部署结构决定的。   到这里终结点也配置完成对应代码的位置找到了吗   接下来是最后一步(或者说两步)配置元数据交换终结点并开启元数据交换行为。这个过程代码中用了三行实际上代码这三行仅 仅是添加了元数据交换行为并没有配置元数据交换终结点运行时系统为我们自动添加了终结点。这两点缺一不可虽然系统会为我们添加我们还是要知道这个 配置的写法。这个很重要。   开启元数据交换从原理上应该是两件事第一是服务允许元数据交换第二是服务提供元数据交换方式第一条就是添加元数据交换行 为表示服务允许这样的请求第二条就是服务告诉你如何请求客户端是通过一个固定的终结点去请求的这个终结点的地址、绑定和协定都是固定的我们不能 更改这个是框架的约定我们只能按要求配置。   首先第一条允许元数据交换这个是通过为服务添加一个行为来实现的行为是用来描述服务的特性的不同的服务可能有相同的 行为行为并不是归某服务独有的因此行为被定义为system.serviceModel节的子节可以被不同的服务引用他的定义有 些像服务外面是带s的里面是不带s的毕竟可能有许多的行为定义嘛。 先定义个行为 [html] view plain copy ?xml version1.0 encodingutf-8 ?  configuration    system.serviceModel      services        service nameHelloWCFService.HelloWCFService          host            baseAddresses              add baseAddresshttp://localhost:8000/MyService/            /baseAddresses          /host          endpoint addressHelloWCFService bindingwsHttpBinding contractHelloWCFService.IHelloWCFService /        /service      /services      behaviors        serviceBehaviors          behavior namemetaExchange            serviceMetadata httpGetEnabledtrue/          /behavior        /serviceBehaviors      /behaviors    /system.serviceModel  /configuration   因为存在服务行为和终结点行为之分所有behaviors和behavior之间又套了一 个serviceBehaviors表示这个是服务行为我们为行为制定了名字好让service可以引用也可以 不指定那么所有服务都会应用。交换元数据的行为有固定的标签描述就是serviceMetadata对着代码看很熟悉吧。   建立了行为以后要让我们刚才建立的服务去引用他用service的behaviorConfiguration属性 [html] view plain copy ?xml version1.0 encodingutf-8 ?  configuration    system.serviceModel      services        service nameHelloWCFService.HelloWCFServicebehaviorConfigurationmetaExchange          host            baseAddresses              add baseAddresshttp://localhost:8000/MyService/            /baseAddresses          /host          endpoint addressHelloWCFService bindingwsHttpBinding contractHelloWCFService.IHelloWCFService /        /service      /services      behaviors        serviceBehaviors          behavior namemetaExchange            serviceMetadata httpGetEnabledtrue/          /behavior        /serviceBehaviors      /behaviors    /system.serviceModel  /configuration     接下来第二步建立元数据交换终结点建立的位置和我们刚才建立的终结点位置相同但是属性是固定的大小写都不能写错。 [html] view plain copy ?xml version1.0 encodingutf-8 ?  configuration    system.serviceModel      services        service nameHelloWCFService.HelloWCFService behaviorConfigurationmetaExchange          host            baseAddresses              add baseAddresshttp://localhost:8000/MyService/            /baseAddresses          /host          endpoint addressHelloWCFService bindingwsHttpBinding contractHelloWCFService.IHelloWCFService /          endpoint addressmex bindingmexHttpBinding contractIMetadataExchange/        /service      /services      behaviors        serviceBehaviors          behavior namemetaExchange            serviceMetadata httpGetEnabledtrue/          /behavior        /serviceBehaviors      /behaviors    /system.serviceModel  /configuration   到这里配置文件就写完了。我们把它放到程序里面去打开上一篇中建立的服务端程序为程序添加一个配置文件 右键点击项目-添加-新建项-应用程序配置文件名字系统会起好(app.config)。把上面的配置写进去保存。 既然我们已经有了配置文件就不需要(也不应该)在代码中配置了。代码中的配置会覆盖掉配置文件中的配置。所以我们要对代码修改一下。 main函数中只留下这么几行 [csharp] view plain copy ServiceHost host  new ServiceHost(typeof(HelloWCFService));    host.Open();    Console.WriteLine(Service is Ready);  Console.WriteLine(Press Any Key to Terminate...);  Console.ReadLine();    host.Close();   其中建立SeviceHost 那行被修改了去掉了baseAddress的参数但是我们仍需要告诉host 我们要寄存的服务类的类型。 F5运行起来。 然后在浏览器中访问一下服务试试 [html] view plain copy http://localhost:8000/MyService   是不是和昨天的结果一样呢。 (CSDN的传图好象挂了哩...)   总结一下今天的学习。 我们使用配置文件的方法完成了对WCF服务的配置从中接触到了服务、终结点和行为的配置方法。配置文件的元素还有许多像绑 定、安全性等等特性。在今后学到的时候再慢慢展开配置文件的每一个元素都应该力求背着写下来一行一行的写在写的过程中体会而不是四处复制和粘贴 这样才能对配置文件的写法有深刻的印象。   相关资源 徐长龙老师播讲的《跟我一起从零开始学WCF系列课程》 http://msdn.microsoft.com/zh-cn/hh148206   MSDN技术资源库中的WCF参考 http://msdn.microsoft.com/zh-cn/library/dd456779.aspx 转载于:https://www.cnblogs.com/dwuge/p/5315240.html
http://www.sadfv.cn/news/12062/

相关文章:

  • 广告公司寮步网站建设山东网站建设哪家权威
  • 软件网站建设专业网站建设一个月做十单
  • 智慧团建网站入口官网数据模型搭建工具
  • 微信朋友圈网站广告怎么做做网站服务怎么赚钱
  • 沈阳网站建设公司的公司海南网上房地产
  • 鞋网站建设方案如何用dw做网站首页
  • ps做网站图片牙克石网站建设
  • 网站开发 html中国建设门户网站
  • 山西建筑劳务网站网站开发 在线支付
  • 免费快速网站动画设计属于什么专业类别
  • 易网 网站建设自建网站避免侵权
  • 安徽省建设厅证书查询官方网站wordpress更换域名后显示空白
  • 云南火电建设公司网站网站绿标怎么做
  • 上海市建设合同信息表网站做诱导网站
  • 做蛋糕网站的 实训报告图wordpress ip地址修改
  • 成都中小企业申请网站郑州百姓网征婚交友
  • 网站构建是什么低内存vps搭建WordPress
  • 临沂国际外贸网站建设.vip网站 被百度收录
  • 惠州自适应网站建设外包接单网
  • 网站做微信支付网站开发团队人员构成
  • 南昌网站开发制作公司纪检监察网站建设的意义
  • 论坛网站需要多大的空间手机端的网站怎么做的
  • 网站建设需要注意什么 知乎湛江市seo网站设计报价
  • 建立网站代码seo优化是什么职位
  • 精品个人网站源码下载网站开发服务费入什么科目
  • 深圳网站官网建设网站返利程序
  • 星月教你做网站回顾文档微信怎么做小程序的
  • 关于网站建设请示百度网站优化推广
  • 电商网站的宣传推广巢湖网站制作
  • 佛山网站建设 奇锐科技设计公司简介范文