我在Web项目的根目录中有一个简单文件(该文件与Web Worker角色相关联)。该文件名为Startup.cmd
。该文件包含以下行:dir > directory.txt
。当我从命令行运行它时,它会正确执行,并将目录内容的列表输出到directory.txt
您期望的名为文件的文件中。同样,该行ECHO Write this line to file > output.txt
也不起作用。
在ServiceDefinition.csdef
我的Azure Cloud Service项目的内部,有以下几行:
<WebRole name="Website" vmsize="Small">
<Startup>
<Task commandLine="Startup.cmd" executionContext="elevated" taskType="simple"></Task>
</Startup>
....
</WebRole>
我相信它正在查找文件,因为我尝试更改路径,它将抛出无法找到它的生成错误。问题是,/bin/
在调试到Azure调试环境后检查目录时,看到了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 Compute Emulator使用了一个我不知道的临时目录。
我更改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\
在启动调试器时将文件写入其中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句