在WindowsAzure上部署WindowsService程序并启动

 

在WindowsAzure上部署WindowsService程序并启动

 

    当你已经在WindowsAzure上部署了一个WebRole后,发现随着使用量的增多,在数据库中会存在很多的无效数据,于是,会打算定期删除数据库中的无效数据。此时,就需要在Azure的虚拟机上部署一个自己的小程序来实现此动作,当然,实现此删除数据的小程序多种多样,部署方式也多样,此文仅仅是虚拟此需求来提出一种在WindowsAzure上部署自己的WindowService的方法。

 

1、 在一个WebRole的应用中,添加WindowsService程序。

如上图,添加一个MyApp的文件夹,把已经编译好的AgentService.exe的WindowsService程序复制到该文件夹中,同时,再添加一个installsvc.cmd文件来安装该WindowsService程序。

installsvc.cmd文件内容如下:

%WinDir%\Microsoft.NET\Framework\v4.0.30319\Installutil.exe MyApp\AgentService.exe

NET START AgentService

 

2、 设置MyApp文件夹中的文件的“复制到输出目录”为“常复制”。

3、 启动该WindowsService程序。

在.csdef文件中添加添加一个Task,用它来调用安装服务的脚本。

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="WindowsAzureProject1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
  <WebRole name="MvcWebRole1" vmsize="Small">
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="http" port="80" />
    </Endpoints>
    <Imports>
      <Import moduleName="Diagnostics" />
    </Imports>
    <Startup>
      <Task commandLine="MyApp\installsvc.cmd" executionContext="elevated" taskType="background" />
    </Startup>
  </WebRole>
</ServiceDefinition>


 

现在就可以把该WebRole上传至WindowsAzure上,同时在该Role的实例虚拟机上也注册和启动了我们的WindowsService程序。

 

另外,在Azure Role节点中添加如下的节点,可以提高Role的执行权限,用于解决一些因为权限不足的问题。

  <WebRole name="MvcWebRole1" vmsize="Small">
    <Runtime executionContext="elevated"></Runtime>
  </WebRole>


 

参考文章:

http://blogs.msdn.com/b/luispanzano/archive/2011/03/19/instalar-un-servicio-windows-en-azure.aspx

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值