Azure FastCgiModule error: The storage control block address is invalid

Azure FastCgiModule error: The storage control block address is invalid

我正在尝试 运行 来自 Azure 网络应用的 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 应用程序中 运行ning 时起作用。他们运行在不同的帐户下吗?

如果您的脚本 运行 作为 CGI 脚本,

Content-type: text/html\n\n
Hello, World!

应该是

Content-type: text/html

Hello, World!

但是您提到了 FastCGI,因此您的脚本可能比这更糟糕。我认为您根本没有使用 Fast CGI 协议进行通信。你用过FCGI吗?

如果您的脚本 运行 来自命令行而不是来自 Web 应用程序或 IIS,则意味着 CGI 部分无法正常运行。我的问题是我没有安装 FCGI

此页面解释了所有内容:http://search.cpan.org/~cosmicnet/FCGI-IIS-0.05/lib/FCGI/IIS.pm

基本上,您需要从命令行 运行 "ppm install FCGI-IIS"(在 PC 上,您从中复制文件以包含在网络应用程序中,而不是您不能的网络应用程序)。

然后为您的 *.pl 处理程序添加一个处理程序参数:-MFCGI::IIS=do

如果它不起作用 运行 从您的网络应用程序命令行执行此操作并查看错误是什么:D:\home\site\wwwroot\bin\perl\bin\perl.exe -MFCGI::IIS=do test.pl

Web 应用程序日志非常无用,如果可以看到错误,从命令行 运行 会更好。