• 在微软的云端服务器部署一个“谷歌日历”


    (很多同志在测试特殊字符哦,确实当内容出现单引号时脚本报错了。哈哈,已修正)
    1:准备工作(准备工作我都是从Lab on hand一步学来的)

    云计算最近以来更大厂商都吹的很热,微软推出了Windows Azure 的社区预览版服务(现在对我来说是个免费的虚拟服务器),大家可以通过以下这个网址进行申请。

    Windows Azure的申请非常简单,填写好基本信息之后,即可以激活状态,已经不需要等待回信确认了。(当然之前你必须具备一个Windows live ID)。

    image

    一路同意继续之后,填写基本信息注册成为Conect的成员,会收到一封验证邮件,进去邮箱确认一下(用来收取Sql Azure 邀请的邮件),顺便把注册申请填掉

    image

    上面那个表格填好之后,Windows Azure就申请成功了。转到主页,会在左侧看到【产品密钥】的链接菜单

    image  点击链接跳转到申请密钥的界面image

    点击【申请新的产品密钥】

    image

    点击【获取密钥】,就可以得到新的密钥了

    image

    Copy 这个密钥

    服务网址:http://windows.azure.com/

    登录之后,一路同意之后 ,到达以下界面,把Copy的密钥填入到输入框中,点击继续,最后点接受 就成功创建Windows Azure 了

    image

    回到首页,可以看到我的项目列表多了一个项目

    image

    点击项目名称后点击右上角的新建服务image ,创建一个虚拟服务;

    image

    之后是起个名字,和一个好记的网址确认即可,成功之后可以看到如下界面,右侧的大方块是测试服务器,左侧是正式服务器,即你可以在部署到生产环境时先部署到测试环境。Ok之后切换到正式环境

    image

    至此我们就拥有一个可以支持ASP.NET MVC的环境了(后面的代码是用asp.net mvc编写)

    SQL Azure的申请和上面类似的我就不讲了,申请的地址是

    https://connect.microsoft.com/Survey/NominationSurvey.aspx?SurveyID=5719&ProgramID=2089&SiteID=547

    只不过这个申请不会马上通过,可能需要等待1-2天时间,在你的邮件里面会收到一封包含产品密钥的邮件

     image

    同样复制密钥,访问https://sql.azure.com/

    同样可以看到一个新的项目,输入管理员账号和密码(新建),你就可以创建你自己的数据库了。但是你不能在页面上建表和建索引等等

    image

    不过你可以通过 SQL Server Management Studio 2008 链接到该服务器,点击上图中的Connection Strings 按钮查看链接字符串

    image

    copy 链接中的Sql ,可以不要tcp:

    打开SSMS 2008 ,链接到服务器,输入你前面创建的账号和密码,

    image

     

    你会收到一个失败的提示,因为这样是连不上的。。哈哈

    image

    点击确定,关掉窗口连接到服务器的窗口,点击【新建查询】。

    image 

    这时还是弹出链接到服务器的对话框,输入服务器地址,输入账号密码,点击【选项】按钮,因为我已经创建了数据库了,所以我想直接使用它

    image

    点击[确定],链接到服务器,这时仍然会弹出一个警告框,但是已经链接上服务器了

    image

    查看一下SQL SERVER 的版本。

    image

    至此大家可以通过,通过SQL语句建表和建索引和建立存储过程等,也可以自行查询计划等操作

    但是字段类型不支持image, text,二进制等等。。

    如果大家觉得麻烦可以使用下面这个工具来迁移你一般的数据库到SQL Azure 

    http://www.infoq.com/cn/news/2009/09/SQLAzureMW-Migrate-to-SQL-Azure

    我还是可以接受sql 的方式,因为一直用Power Designer生成sql 语句建表的

    至此我们的准备工作就OK 了

    2:开发工具包

    在正式开始工作之前,先要准备一些工具

    • VS 2008 sp1必须的
    • ASP.NET MVC本示例必须的
    • Windows Azure Tools for Microsoft Visual Studio July 2009 CTP 玩Windows Azure 必须的,一下地址可以下载得到

    http://www.microsoft.com/downloads/details.aspx?FamilyID=8d75d4f7-77a4-4adf-bce8-1b10608574bb&displaylang=en

    3:开始了

    当装好Windows Azure Tools for VS 之后再新建项目的时候,就会有一个新的项目模板,我们还是新来创建一个空的解决方案

    image

    然后再添加新的项目 ,选择Cloud Service分类中的Cloud Service项目模板。

    image

    选择你的项目包含的角色,目前支持的有Asp.NET 角色 (就是一般的asp.net webform网站项目),workrole (这个牛b了,类似于windows 服务,可以做一些定时处理服务等),还有一个就是CGI网站支持(还支持PHP呢),不过我们这里一个都不选,因为我要建一个ASP.NET MVC的项目,但是项目模板中却没有。没关系接着往下走

    image

    创建完后,我们看到了一个新的项目已经产生了,如图所示

    image

    这时我们再在解决方案上新建一个MVC的网站项目

    image

    image

    然后我们再AzureAZC的这个项目中的Roles文件夹上单击右键,来选择一个现有项目,我选择刚刚创建的MVC网站项目

    image

    image

    完成之后AzureAZC项目中的两个config都相应的发生变化(其实就是加了几个配置节)

    我们把解决方案的启动项目设置MVC网站项目,来看看我们的网站是否可以访问

    image

    一切Ok,然后我们再把,启动项目设成AzureAZC,通过工具来模拟该程序部署到云端是否可以正常浏览,点击运行image

    经过一阵编译和等待,会得到一个失败的框,说Storage服务没有初始化,其实我没有用到该服务啊,哎,我们把这个给关掉。

    image

    打开AzureAZC的项目属性,Development选项卡,将Start Development Storage Service设置成False (当然如果你需要使用,那你可以查看帮助来初始化它,并配置相关的数据库等)保存后重新启动运行,就可以启动起来了 ,如下图所示

    image

    同时来看一下工具Development Fabric(Windows Azure SDK中的工具,前面装tool 的时候默认会安装,也是必须的),模拟部署的情况,

    image

    说明我们这个程序可以部署到云端了(有时你本地浏览OK,但是部署到云端却报错,因为两边的代码的执行权限和dll环境不同),

    如你本地可以运行的MVC程序,必须做以下设置才能在云端部署,否则会告诉你找不到DLL

    要将MVC所关联的三个DLL复制到bin目录才行。

    image

    image

    接下来我们就是删除默认MVC项目中的默认页面,添加我们自己的JS,样式,Controller,View啊等等(ASP.NET MVC的开发请参考相关教程),删除不必要的配置节等

    来看下整理后的代码:(下一篇来详细讲解这个过程)

    image

    重新运行程序,发现单独浏览没有异常,但是模拟部署到云端却报权限不够,原来是使用Entity Framework 的中代码执行权限不够(可能是读取xml配置,或者是序列化反序列化的时候吧,我也不知道),那就只有提升权限了,提升权限非常简单:打开文件ServiceDefinition.csdef

    将配置节enableNativeCodeExecution 设置成true 即可,重新运行代码页不报错了

    <?xml version="1.0" encoding="utf-8"?>
    <ServiceDefinition name="AzureCalendarMvc" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition%22>
      <WebRole name="AzureCalendarMvcWeb" enableNativeCodeExecution="true">
        <InputEndpoints>
          <!-- Must use port 80 for http and port 443 for https when running in the cloud -->
          <InputEndpoint name="HttpIn" protocol="http" port="80" />
        </InputEndpoints>
        <ConfigurationSettings />
      </WebRole>
    </ServiceDefinition>

    Release编译后在项目AzureAZC上选择发布,自动弹出Windows Azure的页面和发布的文件夹,其中有两个文件

    OK了,这下我要正式部署了打开网页 https://windows.azure.com/

    点击存在的仅有的项目,选择前面创建的host servicce 服务,点击部署按钮

    image

    上传发布后的文件s,并属于一个部署号,点击部署,进行上传,和初始化,该操作可能会耗时2-3分钟设置更长。

    image

    上传完毕后,点击run,运行起来 ,

    image

    然后是漫长的初始化过程,该过程需要5-10分钟甚至更长,如果半个小时还没有Start,那说明你的程序有问题,还是再调试调试吧

    image

    当状态变成Start 后,点击下方的随机生成的URL访问下看看效果,

     image

    周视图:

    image

    日视图

    image

    月视图

    image

    快速添加

    image

    查看信息

    image

    觉得一切OK了,点击Swap按钮进行切换即可以在正式的url中访问刚才的部署了

    文中的例子可以可以访问 http://xuanye.cloudapp.net/

  • 相关阅读:
    HOJ 2930 Perfect Fill IIl 线性递推
    BZOJ 1269: [AHOI2006]文本编辑器editor Splay
    linux shell常用快捷键(转)
    【引用】Linux date命令
    linux shell if 参数(转)
    vsftpd 530 Permission denied(转)
    捕获非广播包和非发给自己主机的数据包的原理是什么 混杂模式(转)
    代理ARP(转)
    Linux和Unix系统 关系和区别详细介绍(转)
    路由表(转)
  • 原文地址:https://www.cnblogs.com/xuanye/p/1564406.html
Copyright © 2020-2023  润新知