我在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下
请提供任何意见/建议。
感谢。
答案 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的变量。