从IIS上运行PERL脚本获取输出的问题

时间:2014-02-10 15:02:53

标签: java perl iis cgi

请注意下面的子程序应该打印$ 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

}

1 个答案:

答案 0 :(得分:0)

我发现了问题。我看了一下$ ENV {PATH}并发现即使我更新了系统变量并重新启动了IIS站点,也没有包含java的路径。不幸的是,您需要重新启动IIS作为服务才能获取新的环境变量。现在正在运作。