`
bk_lin
  • 浏览: 346425 次
社区版块
存档分类
最新评论

发布注意事项

 
阅读更多

公告:本博客为微软云计算中文博客的镜像博客。部分文章因为博客兼容性问题,会影响阅读体验。如遇此情况,请访问原博客


Windows Azure入门教学系列()我们看到了如何发布一个简单的程序至云端。大家或许会感叹,发布程序原来是如此的简单。

然而 许多时候,我们的程序在本地明明运行得好好的,但是发布到了云端却会发现无法正常运行。这通常是由于云端的服务器的环境和本地不同造成的。本文将会简要地介绍云端服务器的环境,并且提示一些发布相关的注意事项。

64Windows Server 2008操作系统

目前云端服务器使用的操作系统是64Windows Server 2008。请注意不是Windows Server 2008 R2,所以一些新的操作系统中提供的组件,例如Windows Web ServicesDirect2D,等等,目前在云端是不支持的。此外,一些客户端操作系统的组件,例如语音识别系统,目前也无法在云端使用。今后我们会提供对更新的操作系统的支持。

要注意的是:云端的服务器全部都是64位操作系统。这就意味着你的类库必须针对64CPU,或者Any CPU,进行编译。

对于绝大多数的.NET程序集而言,只要它们并不是混合程序集(mixed assembly),也就是说并不是混杂了native C++managed C++的程序,都可以针对Any CPU编译,所以你完全可以在一台安装了32位操作系统的机体上开发,然后部署到云端。

对于native dll,或者混合程序集而言,我们推荐大家在一台安装了64位操作系统的机体上进行开发。因为这一类程序无法针对Any CPU编译,必须直接针对x64编译。

如果你需要使用第三方针对x86开发的类库,并且无法对其重新编译,你可以使用一个NetNamedPipeBindingWCF服务作为桥梁。有关详细信息,我们会在今后的博客中给出一个例子。

32位的exe程序可以在云端服务器直接运行,而不需要修改。

服务器角色

大家知道,Windows Server 2008有一个角色的概念。默认情况下连一个角色都没有启用,通过服务器管理器,我们可以添加/删除角色。请注意Windows Serve角色和Windows Azure role的区别。

在云端的服务器,如果被用来部署一个Worker Role,那么后台的Windows Server上就没有启用任何一个角色;如果被用来部署一个Web Role,那么Windows Server上的Web Server (IIS)角色将会被启用。也就是说,所有未启用的角色,例如活动目录,远程桌面,等等,在云端的服务器上都无法使用。

.NET Framework

云端的服务器安装了.NET Framework 3.5 SP1,这也是一个默认安装。这就意味着任何没有包括在Framework中的程序集,即使来自微软,也没有被安装到云端服务器的GAC中。ASP.NET MVC相关的程序集就是一个典型的例子。针对这类程序集,你必须在Visual Studio中把对应的引用的Copy Local属性设置成True。这样一来,这个程序集会随着你的项目被共同发布到云端。

如果你使用Visual Studio 2010Windows Azure Cloud Service项目模板,并且在项目中添加了一个ASP.NET MVC 2 Web Role,你将会发现System.Web.Mvc这个程序集引用的Copy Local属性被设置成了True。如果你使用的是Visual Studio 2008,请确保手工进行这个设置。

修改连接字符串

Windows Azure提供了存储服务(storage),虽然该存储服务并不是数据库,但是也有类似的连接字符串的概念。在将项目发布到云端之前,请务必修改它们指向Cloud Storage

例如,默认生成的项目模板中包含一个DiagnosticsConnectionString,用于存储诊断信息,它指向本机的Development Storage。为了修改使其指向Cloud Storage,请执行以下步骤:

首先在Solution Explorer中找到Cloud Service项目,双击Roles文件夹下面对应的role

在打开的页面中,选择Settings标签,随后点击DiagnosticsConnectionString旁边的省略号按钮:

在弹出的的窗口中,输入你的存储服务的帐户信息:

有关连接字符串的详细信息,我们会在今后的博客中详细说明。这边不再深入探讨。现在仅仅说明从哪里获取这些信息。在Windows Azure门户上,从左边的项目列表中选择刚才创建的存储服务。你会看到如下界面:

保存并且编译你的项目。现在,我们的连接字符串已经指向云端的存储服务了。

标准用户权限

在本地开发的阶段,由于Development Fabric需要IIS Hosted Web Core才能运行,你必须以管理员权限启动Visual StudioDevelopment Fabric。这也就意味着调试的时候所启动的WaWebHost.exeWaWorkerHost.exe进程也具备管理员权限。

但是切记,目前在云端的服务器,你的程序是运行在一个标准用户的账号下的,也就是说你的程序不具备管理员权限!

如果你在开发阶段就遵守微软提供的向导(guideline),通常你的程序并不需要管理员权限就能运行。但是,云端的用户还受到一些额外的限制。以下是常见的需要避免的状况:

监听HTTP连接

你必须以管理员权限启动netsh工具来配置哪些账号有权限在特定的端口上监听HTTP连接,这在云端服务器上是办不到的。这就意味着,self-hosted WCF服务不能使用HTTP binding。不过IIS-hosted WCF服务不受这点限制。你还可以使用AppFabric中的Service BusWorker Role中以HTTP relay binding来部署WCF服务。

安装程序

几乎所有的安装报都必须以管理员权限运行,因此你无法在云端的服务器上安装任何软件。但是,使用XCopy方式部署的程序可以在云端运行。方法是,将程序所需要的全部文件一起打包至你的发布包中。

写入注册表

在本地环境,一个标准用户有权限写入注册表中Current User的位置,但是在云端服务器,就连这点也是禁止的。这就意味着绝大多数的自定义COM组件都无法发布至云端。你可以尝试部署Reg-Free COM组件。不过,你对注册表用有读的权限,这就意味着系统自带的COM组件,例如WIC(Windows Imaging Components),是可以在云端使用的,利用了这些COM组件的.NET组件(例如WPF)也能正常运转。

写入文件

对于虚拟机上的文件系统,你仅仅只能往local storage中写入文件。有关local storage的详细信息,我们会在今后的博客中说明。如果你需要往其它文件夹中写入文件,你必须另寻其道。例如,你可以把文件写入blob中,位于blob中的文件可以被所有的虚拟机访问,甚至还可以被外部程序访问(当然你可以做权限控制)。为了便于移植现有程序,最近我们推出了drive功能。有关这些存储服务的详细信息,我们会在今后的博客中说明。

总结

绝大多数场合下,发布程序之云端都是一件非常简单的事。但是因为云端环境和开发环境往往会有不同,在发布一个程序之前有必要做一个系统的检查。希望本文能帮助大家解决大多数部署问题。

分享到:
评论

相关推荐

    QT5打包发布注意事项和解决方法

    QT5 打包发布注意事项和解决方法 在使用 QT5 进行软件开发时,打包发布是一个非常重要的步骤。然而,在打包过程中,经常会遇到各种问题,例如找不到某个模块、无法加载平台插件等。下面我们将讨论 QT5 打包发布中...

    微博发布注意事项微应.pdf

    微博发布注意事项微应.pdf

    APP HUB上传应用程序注意事项

    ### APP HUB上传应用程序注意事项 在进行APP HUB应用程序上传时,为了确保应用程序能够顺利通过审核并上线,需要注意以下几个关键点: #### 文件大小限制 - **应用包大小**:应用程序的安装包大小需要控制在20MB...

    火车头 V3_Dvbbs_7.1.0_Sp1 模块及发布注意事项 下载

    【火车头 V3_Dvbbs_7.1.0_Sp1 模块及发布注意事项】 火车头是一款广泛应用于互联网数据抓取、处理和发布的工具,适用于多种论坛平台,其中包括动网论坛(Dvbbs)的7.1.0_SP1版本。在使用火车头与动网论坛结合进行...

    在WebSphere发布CXF注意事项

    以下是一些关键的注意事项: 1. **环境兼容性**:首先,确认WebSphere版本与CXF的版本兼容。不同的WebSphere版本支持不同级别的Java EE规范,而CXF的某些功能可能依赖于特定的Java EE版本。确保两者之间没有冲突。 ...

    ASP.NE网站发布注意事项简析

    在探讨***网站发布到IIS服务器的过程中,需注意几个重要的步骤和配置点,以确保网站的正常运行和安全。首先,需要了解IIS运行时使用的账户权限问题。在不同的Windows操作系统中,IIS的运行账户不同。例如,在Windows...

    ERP系统信息化资料:CK40N标准成本估算主要步骤及要点.doc

    注意事项 * 在执行标记之前,一定要记得进行解锁操作,只有这里变成小绿灯,才能对该公司标记价格。 * 执行完标记,系统会提示有多少物料被更新。 * 在下月初发布标准价之后,该价格将作为物料的标准价。 CK13N ...

    bom 技改注意事项

    以下是一些关于BOM技改的重要注意事项: 1. 最高版本选择:在进行技改时,应选取已发布的最高版本BOM。这是因为最高版本通常包含了最新的设计信息和改动,以此为基础进行技改可以确保更新的准确性。 2. 保持状态...

    NAT原理及注意事项

    ### NAT原理及注意事项详解 #### 一、NAT(网络地址转换)概念解析 NAT,即Network Address Translation,是一种在网络层实现IP地址转换的技术,主要用于解决IPv4地址空间不足的问题。随着互联网用户和设备数量的...

    Quectel_BC260Y-CN_软件注意事项及FAQ_V1.11

    **Quectel BC260Y-CN 软件注意事项及FAQ** **1. 引言** 本文档针对Quectel BC260Y-CN NB-IoT模块,旨在提供软件使用过程中的注意事项和常见问题解答(FAQ)。文档由上海移远通信技术股份有限公司发布,公司致力于为...

    iOS 上线流程及打包注意事项

    在整个过程中,开发者需要注意以下几点**注意事项**: 1. 保持证书和描述文件的更新,避免因过期导致的打包失败。 2. 应用内购买、隐私政策和用户数据处理需遵守相关规定。 3. 测试应用在不同设备和系统版本上的兼容...

    发布网站注意事项.txt

    发布网站注意点: 0:发布的程序文件名写死了,一定要以CHXXWH命名。 1:主目录要设置成发布程序的路径 2:文档要添加内容文档 3:提示打不开网页的 主要是IIS中的Web服务扩展的ASP.NET v2.0.50727要点允许。 4: ...

    最新今日头条搬砖玩法,单个作品变现300+,一分钟一条原创作品,流量爆炸-教程网盘链接提取码下载.txt

    今天给大家带来的项目是《最新今日头条搬砖玩法,单个作品变现300+,一分钟一条原创作品,流量爆炸》,一部手机即可操作该项目,引流到私域的粉丝还都不算,项目算是一个...03作品制作以及发布注意事项 04变现四步骤

    美赛参赛注意事项中文翻译版.docx

    【美国大学生数学建模竞赛(MCM/ICM)参赛注意事项】 美国大学生数学建模竞赛(MCM/ICM)是一项国际性的数学建模比赛,旨在挑战学生在数学、计算机科学以及书面表达等方面的能力。以下是关于该竞赛的一些关键点: ...

    RK3399处理器硬件设计的要点及注意事项

    本文档主要介绍RK3399处理器硬件设计的要点及注意事项,旨在帮助RK客户缩短产品的设计周期、提高产品的设计稳定性及降低故障率。请客户参考本指南的要求进行硬件设计,同时尽量使用RK发布的相关核心模板。如因特殊...

    ArcGIS 10.2安装注意事项

    ### ArcGIS 10.2 安装注意事项详解 #### 一、安装前准备与注意事项 **1.1 License Manager 的安装** - **步骤一**:首先安装 ArcGIS 10.2 的 License Manager,安装过程中只需按照提示一步步进行即可。 - **步骤...

    Cocos2d-x游戏引擎实战开发之炸弹超人项目

    一,课程特点 特点一、讲师具有一线的实战经验与丰富的教学经验,课程即讲解案例实现思路、理论与原理又讲解实战技巧与注意事项,即照顾到基顾学员,又照顾到有一定实战经验想要提高... 技术亮点十:游戏发布注意事项

    004.天猫规则——客服注意事项.doc

    "天猫规则——客服注意事项" 本文档旨在总结天猫平台上的客服注意事项,旨在帮助商家避免一些常见的错误和争议。以下是对标题和描述中所说的知识点的详细说明: 一、发票问题提醒及注意点: 1. 无论购买金额大小...

    SuperMap_Deskpro_2008生成预缓存注意事项

    ### SuperMap Deskpro 2008生成预缓存注意事项详解 #### 一、概述 在WebGIS开发过程中,为了提高地图服务的响应速度及用户体验,预缓存技术的应用变得越来越广泛。SuperMap Deskpro 2008作为一款功能强大的GIS桌面...

Global site tag (gtag.js) - Google Analytics