【问题标题】:Adding startup script to Azure web role - "copy to output directory" missing将启动脚本添加到 Azure Web 角色 - 缺少“复制到输出目录”
【发布时间】:2015-03-05 22:11:27
【问题描述】:

我正在关注 these instructions 为 Azure Web 角色添加 IP 限制,但我无法更改 startup.cmd 的 构建操作“复制到输出目录”属性脚本。它灰显不可用。谁能解释这是为什么?带有 Kentico 应用程序的 Visual Studio 2013。

更新 1 - 添加了屏幕截图

更新 2 - 意识到我需要更改“复制到输出目录”,而不是构建操作。上面更新的问题。

【问题讨论】:

  • 你确定你使用的是网络角色而不是网站吗?
  • @astaykov 我添加了屏幕截图。以前没有尝试过,所以我可能做错了什么,但我不相信。

标签: visual-studio azure azure-web-roles kentico


【解决方案1】:

嗯,以前从不累,我的主项目中总是有我的启动脚本。 但是,使用此设置,您的启动脚本将自动复制到角色的 Approot。这就是为什么没有“复制到输出目录”的原因。

如果我们仔细查看Define Startup Tasks for a Role,我们会看到一条注释:

命令行任务是相对于 AppRoot\Bin 文件夹的 部署。环境变量未在命令行中展开 价值。如果需要环境扩展,可以创建一个小的 .cmd 脚本将您的启动任务调用为 cmd.exe,它扩展了 环境变量。

按照该注释,您的脚本的命令行可能类似于:

   <WebRole name="CMSApp">
      <Startup>
         <Task commandLine="..\startup\Startup.cmd" >
         </Task>
      </Startup>
      ....
   </WebRole>

这应该可行。因为您的内容,如屏幕截图所定义,位于AppRoot\Startup\startup.cmd 中。但是我没有亲自测试过。

【讨论】:

  • 这似乎是答案,谢谢。但是,当我部署到 Azure 时,我的 Web 角色实例卡在“忙(等待角色启动...系统启动任务正在运行。”并且 Visual Studio Azure 活动日志报告错误“您的角色实例已回收了一个数字)更新或升级操作期间的次数。这表明您的服务的新版本或您在配置服务时提供的配置设置阻止了角色实例的运行。”有什么想法吗?
  • 这有两个可能的原因:(1)您的启动任务返回的退出代码不同于 0(查看此最佳实践教程:msdn.microsoft.com/en-us/library/azure/…)(2)您的启动任务通过,但是RoleEntryPoint 中的代码(如果有)抛出异常,或立即退出 Run 方法 - 查看这两个资源:msdn.microsoft.com/en-us/library/…msdn.microsoft.com/en-us/library/azure/hh771389.aspx
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-05
  • 2018-01-04
  • 1970-01-01
  • 2016-10-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多