我尝试按照以下MSDN文章包含一个任务: http://msdn.microsoft.com/en-us/library/windowsazure/jj154098.aspx
但是我在其中一个实例上收到了以下错误;
回收(等待角色启动...应用程序启动任务失败,退出代码为1. [2013-04-13T11:03:22Z])
有人可以建议真正发生的事情,如果有的话会有什么问题?
下面是我的cmd:
@echo off
@echo Installing "IPv4 Address and Domain Restrictions" feature
%windir%\System32\ServerManagerCmd.exe -install Web-IP-Security
@echo Unlocking configuration for "IPv4 Address and Domain Restrictions" feature
%windir%\system32\inetsrv\AppCmd.exe unlock config -section:system.webServer/security
和CSDF:
<Startup>
<Task commandLine="Startup.cmd" executionContext="elevated"/>
<Task commandLine="startup\startup.cmd" executionContext="elevated"/>
</Startup>
谢谢
答案 0 :(得分:5)
我曾遇到过类似的问题。我通过在我的启动脚本中添加以下内容来修复它:
exit /b 0
如果没有这个,Azure Fabric就不会将脚本注册为已完成,并且它会继续回收实例。
我看到您使用 ServerManagerCmd.exe 。此命令已从Windows Server 2012中删除。因此,请确保未使用最新的OS系列版本部署您的角色。
<ServiceConfiguration ... osFamily="1" ...>
答案 1 :(得分:3)
你可以在这里做的是RDP到实例中并手动运行.CMD文件以查看它是否会抛出任何错误。
我在部署到Azure时收到类似的错误,这是由启动命令引发需要用户输入的对话框引起的。基本上警报框确认.dll已经注册,这就是全部,但它足以阻止部署例程在其轨道上。
以下是我的.cmd文件的内容:
chcp 1252>NUL
regsvr32 /s .\library\asppdf64.dll
regsvr32 /s .\library\aspjpeg64.dll
exit /b 0
/s
告诉服务以静默方式运行(即清除对话框)。 chcp 1252>NUL
设置了代码页。