如何在Azure启动任务中获取siteroot路径而不是approot?

时间:2014-02-26 15:49:03

标签: azure command-line

我有一个Azure Web项目,它在ServiceDefinition.csdef中配置了启动任务。

<Startup>
  <Task commandLine="Task.cmd" executionContext="elevated" taskType="simple" />
</Startup>

在Task.cmd中,我有需要Web项目路径的代码。有点像这样:

InstallService.exe /webpath="%cd%"

但启动任务中的目录与实际生产路径不同。 (E:\ approot vs. E:\ siteroot \ 0)。

有没有办法在我的Task.cmd中获取生产路径?

由于

1 个答案:

答案 0 :(得分:1)

您将使用一小部分PowerShell!您必须创建一个PowerShell脚本并修改cmd。 您的整个PowerShell文件(startup.ps1)应如下所示:

Import-Module WebAdministration
$site = Get-ChildItem IIS:\Sites | Where-Object {$_.State -eq 'Started'}
$siteRoot = $site.PhysicalPAth
$fileExe = "InstallService.exe"
& $fileExe  /webpath=$siteRoot

请注意,这未经过测试,因此无法保证正常工作。 你的新startup.cmd应如下所示:

@echo off 
powershell -command "Set-ExecutionPolicy Unrestricted" 2>> err.out  
powershell .\startup.ps1 2>> err.out

请花点时间浏览this good article