请注意下面的子程序应该打印$ sting,其中包含由另一个Java程序生成的一堆信息。问题是$ string最终为空,这表明该命令甚至没有运行。当我在IIS之外运行此脚本时,我实际上得到了我期望的输出。有什么想法吗?
sub getStatus{
my $info = shift;
my $env = lc($info->{'enviroment'});
my ($host,$port) = split("\-", $env);
chomp ($host, $port);
my $cmd = "java ./GetStatus $host $port";
my $string = `$cmd`;
print <<ENDOFTEXT;
HTTP/1.0 200 OK
Content-Type: text/html
<HTML>
<HEAD><TITLE>Cache Status</TITLE></HEAD>
<BODY>
<H4>Cache Status</H4>
$string
</BODY>
</HTML>
ENDOFTEXT
}
答案 0 :(得分:0)
我发现了问题。我看了一下$ ENV {PATH}并发现即使我更新了系统变量并重新启动了IIS站点,也没有包含java的路径。不幸的是,您需要重新启动IIS作为服务才能获取新的环境变量。现在正在运作。