ColdFusion';作为服务运行';Vs';在控制台中运行';
问题 当CF作为服务运行与CF在控制台模式下运行时,在权限方面有什么不同 历史 我有一个为Word.Application创建COM对象的代码,并使用它们将文档转换为PDF。但当我转到CF 10u8(64b)时,逻辑中断了。我已经检查了inter-webs,尝试更改java.library.path={}值、权限和所有可能的提示以使其工作;但是没有成功。我发现要确认jintegra\bin\ntvinv.dll是设计用于32b环境的 因此,我求助于使用VB脚本模式将CF代码转换为VB脚本,并进行文档到PDF的转换 问题 VB脚本中的代码非常漂亮,它可以立即满足我的需要。在我把这个叫做.vbs之前,它看起来还不错。它永远处理,超时,什么也不显示+任务管理器中有放弃的WINWORD.exe进程 我尝试将参数写入批处理文件并调用它。这次它立即运行,但什么也没发生。我检查了日志,上面写着 Microsoft VBScript运行时错误:需要对象:“wdocs.Open(…) 我从命令提示符调用了批处理文件,它执行时没有错误。我的文档->PDF转换完成 因此,这次我将ColdFusion服务的“登录身份…”权限从“本地系统帐户”更改为系统的管理员用户帐户,并启动了它。我知道 本地计算机上的CF 10应用程序服务器服务已启动,然后停止。如果某些服务未被其他服务或程序使用,则会自动停止 所以,路的尽头就在那里。我尝试过使用“允许服务与桌面交互”选项。但一切都没有改善 最后,我尝试从bin\cfstart.bat文件运行CF。它有coldfusion.exe-start-console。命令窗口出现,CF启动。 这一次,作品和转换发生了。没有发现任何错误。我不明白为什么会这样。使用系统帐户(登录者)作为服务运行与使用相同用户帐户作为控制台运行有什么区别?我缺少什么来理解 调试 我已经在服务器上创建了一个本地用户帐户,并在“以…身份登录”和使用同一帐户登录系统中使用该帐户。在这两种情况下,情况与上述相同 我觉得这是一个许可问题,我不知道在哪里,为什么会发生这种情况?特别是为什么在服务模式下而不是控制台模式下ColdFusion';作为服务运行';Vs';在控制台中运行';,coldfusion,vbscript,ms-word,console-application,windows-server-2008-r2,Coldfusion,Vbscript,Ms Word,Console Application,Windows Server 2008 R2,问题 当CF作为服务运行与CF在控制台模式下运行时,在权限方面有什么不同 历史 我有一个为Word.Application创建COM对象的代码,并使用它们将文档转换为PDF。但当我转到CF 10u8(64b)时,逻辑中断了。我已经检查了inter-webs,尝试更改java.library.path={}值、权限和所有可能的提示以使其工作;但是没有成功。我发现要确认jintegra\bin\ntvinv.dll是设计用于32b环境的 因此,我求助于使用VB脚本模式将CF代码转换为VB脚本,并进行
注意:在转到VBS之前,我已尝试使用,但由于文档中的某些特定格式,它会引发异常。因此,目前这不是一个选择 信用证:我的VBScript代码源于 更新 这是我的代码,你可以用它来测试 命令行代码 /c/doc2pdf.vbs)
我认为您的问题与windows ap与控制台应用程序有关。 可能是某些部分要求控制台(windows桌面gui)处于活动状态。 有些服务,例如DHCP,在那里没有依赖关系,因此作为一个纯服务运行良好,不需要人工交互
也许只是从系统内部尝试流程监视器的一个想法,它有时会显示什么是允许的,什么是不允许的。也可能会出现一些对话框。你可能看不到这些。您可以通过将Application.DisplayAlerts设置为false来尝试禁用这些
参见我已经找到了问题的答案 我试图回到基本面,检查所有相关组件的问题
谢谢大家的帮助。It永远处理,超时,什么也不显示+任务管理器中有放弃的WINWORD.exe进程请尝试将其附加到参数的开头。指示cmd.exe运行命令并退出。(另外,CF10可能不需要它,但将stderr重定向到stdout也不会有什么坏处,即
2>&1
)<代码>另外,你能发布一个小的、独立的、可以测试的复制案例吗?@Leigh我已经添加了我的代码。此外,我还尝试了/c和2>&1建议。它确实有助于杀死这个“赢家”。只是想一想,我觉得有了cfexecute的新属性(errorFile),使用2>&1不会有很大帮助。是的,就像我提到的,重定向stderr可能没有必要,但作为一个故障排除步骤不会有什么坏处。真正的代码对所有文件都使用绝对路径吗?
<cfexecute name="c:\windows\system32\cmd.exe" arguments="#commands#" outputFile="output.txt" errorFile="error.txt" timeout="20"/>
<cfscript>
objJR = createObject("java", "java.lang.Runtime").getRuntime();
result = objJR.exec(commands);
writeDump(result);
</cfscript>