日期:2012-05-03 08:08:00  来源:本站整理

在Windows Azure中托管WCF服务的办法[Windows安全]

赞助商链接



  本文“在Windows Azure中托管WCF服务的办法[Windows安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

  本文将向大家介绍若何托管内部WCF服务和大众WCF服务,为了托管内部WCF服务,需求成立一个内部端点,并利用内部角色通信,与在输入端点上托管一个外部服务最主要的辨别是内部端点不具有负载均衡特点,而输入端点是挂钩在负载均衡器上的,具有负载均衡功效.

  托管内部WCF服务

  其实要托管一个内部WCF服务很简单,唯一需求注意的是传送给 ServiceHost 的基地址差别,因为端口号和IP地址要等到运行时才知道,因此需求成立一个主机,动态地传送这些信息给它.

  public override bool OnStart()

  {

  // 设置最大并发衔接数

  ServicePointManager.DefaultConnectionLimit = 12;

  DiagnosticMonitor.Start("DiagnosticsConnectionString");

  // For information on handling configuration changes

  // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.

  RoleEnvironment.Changing += RoleEnvironmentChanging;

  StartWCFService();

  return base.OnStart();

  }

  private void StartWCFService()

  {

  var baseAddress = String.Format(

  "net.tcp://{0}",

  RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["EchoService"].IPEndpoint

  );

  var host = new ServiceHost(typeof(EchoService), new Uri(baseAddress));

  host.AddServiceEndpoint(typeof(IEchoService), new NetTcpBinding(SecurityMode.None), "echo");

  host.Open();

  利用内部WCF服务

  我想从我另一个托管的服务调用这个服务,下面就是调用这个服务的全部代码:

  protected void Button1_Click(object sender, EventArgs e)

  {

  var factory = new ChannelFactory(new NetTcpBinding(SecurityMode.None));

  var channel = factory.CreateChannel(GetRandomEndpoint());

  Label1.Text = channel.Echo(TextBox1.Text);

  }

  private EndpointAddress GetRandomEndpoint()

  {

  var endpoints = RoleEnvironment.Roles["WorkerHost"].Instances

  .Select(i => i.InstanceEndpoints["EchoService"])

  .ToArray();

  var r = new Random(DateTime.Now.Millisecond);

  return new EndpointAddress(

  String.Format(

  "net.tcp://{0}/echo",

  endpoints[r.Next(endpoints.Count() - 1)].IPEndpoint)

  );

  }

  这里唯一要注意的是查询F abric ,肯定 WorkerHost 角色中实现了 EchoService 端点,并随机给它们路由恳求的全部端点,本来不需求路由恳求,我这样做是因为内部端点没有负载均衡功效,我但愿在每个 WorkerHost 实例上均匀地分配负载.

  我发现一个本领,就是不需求缓存你找到的 IPEndpoint ,因为它已经缓存在API调用中,但按照最佳实践,你应当缓存你的 ChannelFactory .

  托管大众WCF服务

  托管大众WCF服务也很简单,唯一需求注意的是要利用一个新的行为,为MEX端点处理负载均衡,此外,在你的服务上需求包含一个类属性处理地址过滤不匹配问题.

  以上是“在Windows Azure中托管WCF服务的办法[Windows安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 在Windows7中将U盘用BitLocker加密的操作步骤
  • 在Win7中不用翻开文档也可以看到文档内容的办法介绍
  • 在Windows 8下设置宽带自动衔接 PPPoE拨号的办法介绍
  • 在win 7系统中语聊时麦克风声音太小的设置音量办法
  • 如安在Win8 RTM中强迫开启正式版全透明效果
  • 如安在Win7系统中不用翻开文档也可以看到文档内容的图文办法介绍
  • 在Win7/Vista下因为Flash 11.3招致Firefox崩溃问题办理办法
  • 在Windows 8 中更改默许输入法的办法
  • 在win 8上安装XenServer的具体办法
  • 在Windows 8 中成立、删除或格局化硬盘分区的办法(图文教程)
  • 利用U盘在Windows 7系统上安装Windows8双系统教程
  • 在windows中注册dll文件的办法
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .