我正在尝试从Azure Web应用程序运行ActivePerl。我已经安装了所有必需的文件,可以从命令行运行它。
我可以从命令行查看test.pl脚本的输出,如下所示
D:\home\site\wwwroot\bin\perl\bin\perl.exe D:\home\site\wwwroot\test.pl
这只是输出这个文字:
Content-type: text/html\n\n
Hello, World!
但是,当我在“应用程序设置”中添加处理程序以运行处理器路径为
的* .pl文件时D:\ home \ site \ wwwroot \ bin \ perl \ bin \ perl.exe(即与我从命令行运行的文件相同)
我收到以下FastCgiModule错误:存储控制块地址无效。 (0x9)
我认为这是一个权限错误,但为什么它可以在命令行中运行,而不是在Web应用程序内运行时。他们是在不同的账户下运作吗?
答案 0 :(得分:0)
如果您的脚本从命令行运行但不是从Web应用程序或IIS运行,则意味着CGI部分无法运行。我的问题是我没有安装FCGI
此页面解释了所有:http://search.cpan.org/~cosmicnet/FCGI-IIS-0.05/lib/FCGI/IIS.pm
基本上,您需要从命令行运行“ppm install FCGI-IIS”(在PC上复制文件以包含在Web应用程序中,而不是您不能使用的Web应用程序)。
然后添加为* .pl处理程序的处理程序参数:-MFCGI :: IIS = do
如果它无法正常运行,请从您的网络应用程序命令行运行,看看错误是什么:D:\ home \ site \ wwwroot \ bin \ perl \ bin \ perl.exe -MFCGI :: IIS = do test.pl
如果你能看到错误,那么网络应用程序日志就没用了,从命令行运行要好得多。