cgi 页面在本地 IIS 中不起作用

Posted

技术标签:

【中文标题】cgi 页面在本地 IIS 中不起作用【英文标题】:cgi pages not working from local IIS 【发布时间】:2015-07-10 13:19:57 【问题描述】:

我最近对我的计算机进行了重新映像并重新安装了所有内容。一切正常,除了从我的本地主机,如果我浏览一个 cgi 页面,它会抛出

HTTP 错误 500.0 - 内部服务器错误 页面无法显示 因为发生了内部服务器错误。

模块 CgiModule

通知ExecuteRequestHandler

处理程序 Perl 脚本

错误代码0x800700c1

请求的 URL localhost:80/website1/index.cgi

登录方式 NTLM

我启用了 Windows 身份验证并禁用了其他所有功能。我的 ISAPI 和 CGI​​ 限制显示一切都是允许的。我的处理程序映射(在机器级别)使用 CGIModule 启用了 *.cgi(运行存在的 \inetsrv\cgi.dll)。我不知道还要检查什么。请指教。

知道如何纠正/调试这个吗?我在 Windows 7 上有 IIS 7.5。

【问题讨论】:

我猜是权限问题或 cgi 未启用。 IIS 日志没有显示更多信息来说明失败的原因吗? “除了我的本地主机,一切都正常”如果您通过另一台机器浏览,这是否有效? 我检查了 IIS 日志和 eventvwr。没有。通过另一台机器浏览也不起作用。 【参考方案1】:

我终于做到了

如果您已经安装了 Perl,请卸载它。 (我们将在安装 IIS 后重新安装)。如果有,请删除 c:Perl。重要的是,请先复制一份。 如果您已经安装了 IIS,请卸载它。 (我们将重新安装)。删除 c:inetpub 和 c:\Windows\system32inetsrv。在做之前复制一份,以防万一。

通过控制面板卸载后,也可以执行以下卸载命令进行干净卸载

start /w pkgmgr /uu:IIS-WebServerRole;IIS-WebServerManagementTools;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent; IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASP;IIS-ASPNET;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-NetFxExtensibility;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS- HttpLogging;IIS-HttpTracing;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Performance;IIS-HttpCompressionStatic;IIS-Security;IIS-RequestFiltering;IIS-WindowsAuthentication;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI

重启机器

安装 IIS。确保在安装 perl 之前在 IIS 中安装 CGI 部分

检查 IIS(CGI 除外)中的所有内容是否正常。您可能必须在 IIS 安装后注册 aspnet。

%windir%Microsoft.NETFramework64v4.0.30319aspnet_regiis.exe -i

安装 Perl。单击下一步时,您应该会看到一个“选择设置选项”屏幕,并具有以下选项:a) 将 perl 添加到 PATH 环境变量 b) 为 perl ISAPI 创建 .plx 脚本映射,c) 为 PERL 等创建 .pl 脚本映射。检查所有这些选项

比较您备份的 perl 位置和新位置 (C:\Perl)。复制所有丢失的文件

在 IIS 中创建应用程序池和虚拟目录。在应用程序池中,“启用 32 位应用程序”

在 IIS 中添加 ISAPI 和 CGI​​ 限制。在命令提示符下执行以下操作。

c:\Windows\System32\inetsrv>appcmd set config /section:isapiCgiRestriction /+"[path='C:perlbinperl.exe "%s %s"',description='Perl',allowed='True' ]"

【讨论】:

以上是关于cgi 页面在本地 IIS 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Cakephp 在 IIS 中不起作用?

DELETE 动词在 iis 10 中不起作用

Codeigniter 控制器链接在 IIS 中不起作用

预检请求在IIS中不起作用

IOS 的 C# PushSharp 通知在 IIS 7.5 中不起作用

PayPal IPN - 测试 - 在沙盒中不起作用