热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用ServiceRuntimeassembly和windowsazure交互

使用ServiceRuntime assembly和windows azure交互


1.ServiceRuntime assembly位置

2.判定application是否运行在fabric上

3.读取ServiceDefinition.csdef配置文件内容


1.添加ServiceRuntime assembly引用

如果是在vs2010中新建一个cloud工程的话,将会自动添加下面的这几个引用:

使用ServiceRuntime assembly和windows azure交互

但是如果是想要迁移application程序到云上,那么必须手动添加assembly引用,位置如下:

使用ServiceRuntime assembly和windows azure交互


2.ServiceRuntime作用

ServiceRuntime在windows azure和应用程序之间搭建了一座桥梁,通过ServiceRuntime,通常的asp.net web应用程序能够和azure交互。这种交互通常表现在下面的三个方面:

  • 检查当前的应用程序是否运行在云上
  • 读取ServiceDefinition.csdef配置文件信息
  • 得到本地缓存的引用,从而操作本地缓存local cache

3.当前应用程序是否运行在云上?

this.runningInTheFabricLabel.Text = RoleEnvironment.IsAvailable ? "Running in fabric" : "Not in fabric";


4.使用ServiceDefinition.csdef配置文件信息

4.1 ServiceDefinition.csdef配置文件结构

使用ServiceRuntime assembly和windows azure交互

其中name表示的vs中解决方案的名称,紧接着是每个web role的配置信息。


4.2 如何更改该配置文件?是否存在gui工具?

ServiceDefinition.csdef文件是以xml形式存储的,直接以xml形式代开,在vs中存在只能提示,当然也可以使用gui工具:

使用ServiceRuntime assembly和windows azure交互

使用ServiceRuntime assembly和windows azure交互


4.3 Endpoints配置

使用ServiceRuntime assembly和windows azure交互

type分为input和internal,input表示能够响应外部请求,internal表示仅仅是在application内部使用,外部是不能够访问的;protocol表示使用的是何种协议:http,https。


4.4 Configuration配置

使用ServiceRuntime assembly和windows azure交互

1.默认的trust level是full trust,一般发布的程序应该是运行在windows azure partial trust,但是如果是需要执行一些特殊工作,比如p/invoke的话,那么需要将信任级别设置成full。

2.instance count表示启动role实例的数量。vm size设置vm大小

3.startup action实际上是vs的一个配置选项,表示调试的状态下的动作,这里表示启动浏览器。


4.5 local storage配置

使用ServiceRuntime assembly和windows azure交互

由于云上的数据存储和application运行的服务器可能是不在同一个服务器,local storage确保local storage size的数据存储是和application运行在一个服务器上。最后一个选项clean on recycle表明在一些特殊情况下这些数据是否保存。下面将展示如何读取这些loca storage上的数据



local storage名称
local storage大小
local storage rootpath

protected void Button1_Click(object sender, EventArgs e) { LocalResource localStorage = RoleEnvironment.GetLocalResource("MyLocalStorage"); this.localStorageNameLabel.Text = localStorage.Name; this.localStorageSizeLabel.Text = localStorage.MaximumSizeInMegabytes.ToString(); this.localStorageRootPathLabel.Text = localStorage.RootPath; File.WriteAllText(localStorage.RootPath + "HelloWorld.txt", "Hello World!"); }

通过localStorage.RootPath得到路径之后,.net原有的对文件路径的操作均能够使用。


代码下载


本系列的博客均是在学习windows azure平台时个人的感悟,其中难免存在不足之处,欢迎指正,留言提出您的宝贵意见。


推荐阅读
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
  • 在 Android 开发中,`android:exported` 属性用于控制组件(如 Activity、Service、BroadcastReceiver 和 ContentProvider)是否可以被其他应用组件访问或与其交互。若将此属性设为 `true`,则允许外部应用调用或与之交互;反之,若设为 `false`,则仅限于同一应用内的组件进行访问。这一属性对于确保应用的安全性和隐私保护至关重要。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 在拉斯维加斯举行的Interop 2011大会上,Bitcurrent的Alistair Croll发表了一场主题为“如何以云计算的视角进行思考”的演讲。该演讲深入探讨了传统IT思维与云计算思维之间的差异,并提出了在云计算环境下应具备的新思维方式。Croll强调了灵活性、可扩展性和成本效益等关键要素,以及如何通过这些要素来优化企业IT架构和运营。 ... [详细]
  • 本教程详细介绍了如何使用 Spring Boot 创建一个简单的 Hello World 应用程序。适合初学者快速上手。 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • Flowable 流程图路径与节点展示:已执行节点高亮红色标记,增强可视化效果
    在Flowable流程图中,通常仅显示当前节点,而路径则需自行获取。特别是在多次驳回的情况下,节点可能会出现混乱。本文重点探讨了如何准确地展示流程图效果,包括已结束的流程和正在执行的流程。具体实现方法包括生成带有高亮红色标记的图片,以增强可视化效果,确保用户能够清晰地了解每个节点的状态。 ... [详细]
  • 在《Linux高性能服务器编程》一书中,第3.2节深入探讨了TCP报头的结构与功能。TCP报头是每个TCP数据段中不可或缺的部分,它不仅包含了源端口和目的端口的信息,还负责管理TCP连接的状态和控制。本节内容详尽地解析了TCP报头的各项字段及其作用,为读者提供了深入理解TCP协议的基础。 ... [详细]
  • 如何使用 `org.apache.poi.openxml4j.opc.PackagePart` 类中的 `loadRelationships()` 方法及其代码示例详解 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
author-avatar
此人已死689
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有