2

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 で同じことを確認する方法がわかりません。そこで、World Wide Publishing ServiceIIS Admin Service (ローカル システムとして実行)を確認しました。

管理者としてログインしても、webserver ユーザーをC:\Windows\System32 にあるinetsrvフォルダーまたはappcmd.exeに追加できません。

アイデア/提案を手伝ってください。

ありがとう。

4

1 に答える 1

1

appcmd.exe が cmd.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 に変数を使用することを好みます。

于 2011-12-13T06:05:25.617 に答える