CFExecute不执行appcmd.exe

时间:2011-12-08 22:05:19

标签: iis-7 coldfusion-9 appcmd

我在Cofdfusion服务器上创建了以下代码:文件名:testWebsite.cfm

<cfoutput>
<cfset exec_command = "add site /name:""demosite"" /bindings:http://demosite.testserver.com:80 /physicalpath:""D:\Websites\demosite"" ">

<cfexecute name="C:\Windows\System32\inetsrv\appcmd.exe" arguments="#exec_command#" timeout="60" />

Done!
</cfoutput>

但是当我执行此文件时,例如http://www.demoserver.com/testcases/testWebsite.cfm

它只显示“完成!”没有任何错误,它不会执行添加网站代码。

在查阅大量文档后,我检查了两者都执行的用户权限。 coldfusion服务以域名用户身份运行,名为 Webserver@domain.com 我不知道如何检查IIS的相同内容。 所以我检查了全球发布服务 IIS管理服务 - 以本地系统运行。

即使我以管理员身份登录,我也无法将网络服务器用户添加到 inetsrv 文件夹或位于以下位置的 appcmd.exe C:\ Windows \ System32下

请提供任何意见/建议。

感谢。

1 个答案:

答案 0 :(得分:1)

如果从cmd.exe调用appcmd.exe,它应该可以工作:

<cfset vcCmdPath = "C:\Windows\system32\cmd.exe">
<cfset vcAppCmdArg = "/c C:\Windows\System32\inetsrv\appcmd.exe">
<cfset exec_command = "add site /name:""demosite"" /bindings:http://demosite.testserver.com:80 /physicalpath:""D:\Websites\demosite"" ">

<cfexecute name="#vcCmdPath#" arguments="#vcAppCmdArg# #exec_command#" variable="vcAppCmdResults" timeout="60"></cfexecute>

<cfoutput>#vcAppCmdResults#</cfoutput>

我更喜欢使用cmd.exe和appcmd.exe的变量。