azure - Microsoft Azure 启动任务未执行

标签 azure startup azure-web-roles

我的 Web 项目的根目录中有一个简单的文件(与 Web 辅助角色相关)。该文件名为 Startup.cmd。该文件包含以下行:dir > directory.txt。当我从命令行运行它时,它可以正确执行,并将目录内容列表输出到名为 directory.txt 的文件中,正如您所期望的那样。同样,ECHO Write this line to file > output.txt 行似乎也不起作用。

在我的 Azure 云服务项目的 ServiceDefinition.csdef 中,我有以下几行:

<WebRole name="Website" vmsize="Small">
    <Startup>
        <Task commandLine="Startup.cmd" executionContext="elevated" taskType="simple"></Task>
    </Startup>
    ....
</WebRole>

我相信它正在查找该文件,因为我尝试更改路径,但它会抛出找不到该文件的构建错误。问题是,当我在调试到 Azure 调试环境后检查 /bin/ 目录时,我看到 Startup.cmd (我将其设置为 Copy Always ),但我没有看到directory.txt。我不确定是否有其他方法可以确认它是否正确执行。

最佳答案

我发现以下 MSDN 文章很有用:http://msdn.microsoft.com/en-us/library/hh180155.aspx .

因此,我对 Startup.cmd 文件进行了一些更改。我将命令更改为:

ECHO The current version is %MyVersionNumber% >> "%TEMP%\StartupLog.txt" 2>&1
EXIT /B 0

但是,这似乎并未将输出放入系统的临时目录中:C:\Users\username\AppData\Local\Temp。我假设这是因为 Azure 计算模拟器使用了我不知道的不同临时目录。

我将 Startup.cmd 更改为:

ECHO The current version is %MyVersionNumber% >> "c:\temp\StartupLog.txt" 2>&1
EXIT /B 0

并将我的配置更新为:

<WebRole name="Website" vmsize="Small">
  <Startup>
      <Task commandLine="Startup.cmd" executionContext="elevated" taskType="simple">
          <Environment>
              <Variable name="MyVersionNumber" value="1.0.0.0" />
              <Variable name="ComputeEmulatorRunning">
                  <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
              </Variable>
          </Environment>
      </Task>
  </Startup>
  ...
</WebRole>

这似乎在启动调试器时将文件写入C:\temp\

关于azure - Microsoft Azure 启动任务未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23695837/

相关文章:

java - Azure AD token 签名验证无效。使用算法验证时, token 的签名无效 : SHA256withRSA

azure - Windows Azure ACS 是否支持用户名/密码身份验证?

azure - Web 角色本地存储 URI

azure - 我应该使用哪个 Azure 角色?

azure - 如何下载Azure存储的私有(private)容器中的文件夹

mongodb - Cosmos DB 聚合管道不兼容(Mongo API)?

linux - C++ 生成文件安装 : start program at boot and reboot

c# - 在启动时运行程序

java - 如何在 logback 启动时滚动日志文件

Azure CDN - 使用 ETag 启用 HTTP 304 缓存 - 托管 Web 角色