博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows Azure Cloud Service (18) 基于Input Endpoint通过Worker Role发布WCF服务
阅读量:5024 次
发布时间:2019-06-12

本文共 2448 字,大约阅读时间需要 8 分钟。

《》

 

  由于Input Endpoint可以通过Hosted Service URL直接访问,所示可以利用这个特点基于Worker Role寄宿一个使用NET.TCP协议的WCF服务。

注:对于WCF服务不了解的网友可以参考

  首先在Visual Studio中创建一个Windows Azure项目并加入一个Worker Role。然后,在这个solution中添加两个项目,分别是WCF服务契约的项目和测试用控制台项目。而WCF服务的具体逻辑则在Worker Role项目中实现。接下来完成一个简单的EchoService功能,即将客户端传入的字符串加入时间信息再返回给客户端。

  接下来将这个WCF服务寄宿在Worker Role中。首先需要设定一个对外的Endpoint。打开Endpoint界面,由于要用户能够从Internet访问这个服务,所以创建一个Input Endpoint,并且将Endpoint的类型设置为TCP,这样就可以支持NET.TCP的WCF通信。最后,将端口号指定为3030.

  在配置文件中加入WCF寄宿信息。由于这个服务将会被部署到Windows Azure一个已经创建好的Hosted Service中,所以其对外的URL是事先知道的。因此就可以直接在配置文件中指定这个服务的发布地址,例如:net.tcp://leizhang.cloudapp.net:3030/EchoService。然后使用NET.TCP Binding,讲安全级别设置为None,完成后的配置文件如下:

......

回到Worker Role的代码中,在Run方法中启动WCF服务,并且在OnStop方法中停止WCF服务。完成后的代码如下所示:

public class WorkerRole : RoleEntryPoint {
private ServiceHost _host; public override void Run() {
//This is a sample worker implementation. Replace with your logic. Trace.TraceInformation("EchoSerive.Service entry point called"); //host the wcf service _host = new ServiceHost(typeof(EchoService)); _host.Opened += (sender,e)=> {
Trace.TraceInformation("WCF opened at {0}",_host.Description.Endpoints [0].Address); }; _host.open(); while (true) {
Thread.Sleep(10000); Trace.TraceInformation("Running .."); } } public override bool OnStart() {
//Set the maximum number of concurrent connections ServicePointManager.DefaultConnectionLimit=12; CkoudStorageAccount.SetConfigurationSettingPublisher((configName configSetter)=> {
configSetter(RoleEnvionment.GetConfigurationSettingValue(configName)); }); return base.OnStart(); } public override void OnStop() {
if(_host!=null) _host.Close(); base.OnStop(); } }

  最后,创建一个简单的客户端程序来访问这个服务。具体的操作步骤这里就不详细介绍了,直接看一下对应的配置文件。如下所示,在WCF的配置部分指定了Hosted Service上的WCF地址和端口号。

 

本文摘自:徐子岩著的《实战Windows Azure 微软云计算平台技术详解》 电子工业出版社

 

 

转载于:https://www.cnblogs.com/threestone/archive/2012/03/04/2379210.html

你可能感兴趣的文章
Centos下源码安装git
查看>>
gulp-rev-append md5版本号
查看>>
IO流之File类
查看>>
sql 基础语句
查看>>
CF717A Festival Organization(第一类斯特林数,斐波那契数列)
查看>>
oracle直接读写ms sqlserver数据库(二)配置透明网关
查看>>
控件发布:div2dropdownlist(div模拟dropdownlist控件)
查看>>
Oracle composite index column ordering
查看>>
ActiveReports 报表控件官方中文入门教程 (3)-如何选择页面报表和区域报表
查看>>
kaggle竞赛
查看>>
区块链入门教程
查看>>
域 搭建OU 组织单元
查看>>
npm常用命令
查看>>
南海区行政审批管理系统接口规范v0.3(规划)4.2.【queryExpireList】当天到期业务查询...
查看>>
[置顶] 细说Cookies
查看>>
[wp7软件]wp7~~新闻资讯,阅读软件下载大全! 集合贴~~~
查看>>
生成指定位数随机数的方法
查看>>
java的垃圾回收
查看>>
Essential C++学习笔记
查看>>
python+selenium进行简单验证码获取
查看>>