在 iis 7.0 上运行 .net framework 4.0 网站时出现问题

Posted

技术标签:

【中文标题】在 iis 7.0 上运行 .net framework 4.0 网站时出现问题【英文标题】:Problem in running .net framework 4.0 website on iis 7.0 【发布时间】:2011-11-26 13:08:11 【问题描述】:

嘿,我在 IIS7.0 上运行 .NET framework 4.0 网站时遇到问题。 我得到的错误是:

HTTP 错误 404.2 - 未找到“由于 Web 服务器上的 ISAPICGI 限制列表设置,无法提供您请求的页面”。

Module : IsapiModule , 
Notification : ExecuteRequestHandler, 
Handler : PageHandlerFactory-ISAPI-4.0_32bit , 
Error Code : 0x800704ec

【问题讨论】:

【参考方案1】:

如果您查看 ISAPI 和 CGI​​ 限制,并且所有内容都已设置为允许,并且安装的 ASP.NET 是 v4.0.30319,那么在右侧,在“Actions”面板中单击“Edit Feature Settings...”并选中这两个框。就我而言,他们不是。

【讨论】:

【参考方案2】:

如果您查看 ISAPI 和 CGI​​ 限制,并且所有内容都已设置为 允许,请确保 ASP.NET v4.0.30319 处理程序甚至在列表中。在我的情况下,他们不是。这很容易被忽视。


我为 32 %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 添加了一个,为 64 位添加了另一个 %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll。您可以将它们命名为相同的ASP.NET v4.0.30319

勾选允许执行扩展路径

【讨论】:

【参考方案3】:

如果您没有列出 ISAPI 和 CGI​​ 限制选项,这里是如何添加它。 How to add ISAPI and CGI Restrictions

【讨论】:

【参考方案4】:

根据应用程序的类型,要检查的另一件事是在应用程序池的高级设置下确保“启用 32 位应用程序”设置为 True。

当我遇到这个问题时,我已经检查了这个线程中的所有内容,但所有内容都已正确设置,我发现这是我的问题。

【讨论】:

【参考方案5】:

在我们的案例中,该问题的解决方案不涉及“ISAPI 和 CGI​​ 限制”设置。在操作人员意外将服务器升级到 .NET 4.5,然后再次降级到 .NET 4.0 后,错误开始出现。这导致一些 IIS 网站忘记了它们各自正确的应用程序池,并导致一些应用程序池从 .NET Framework 4.0 切换到 2.0。改回这些设置可以解决问题。

【讨论】:

【参考方案6】:

在我的情况下,问题更严重:原来 asp.net 没有正确注册。

This response worked fine.

只需在命令提示符处运行以下命令

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

如果我使用的是 32 位系统,它会如下所示:

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i

【讨论】:

【参考方案7】:

第 1 步:打开 IIS 并单击服务器名称 步骤 2. 双击“ISAPI 和 CGI​​ 限制” 步骤 3. 右键单击​​ ASP.NET v4.0.30319 并选择“允许”

之后 停止和启动万维网发布服务

1.转到开始 > 所有程序 > 管理工具 > 服务。 2.在服务列表中,右键单击万维网发布服务,然后单击停止(停止服务)、启动(停止后启动)或重新启动(在服务运行时重新启动服务)。

普拉梅什

【讨论】:

【参考方案8】:

如果您正在运行 Delphi 或其他本机编译的 CGI,则此解决方案将有效:

    正如其他人指出的那样,转到 IIS 管理器并单击服务器名称。然后点击IIS标题下的“ISAPI and CGI Restrictions”图标。

    如果一切都允许,它仍然无法正常工作。您需要在Actions(右侧)中点击“Edit Feature Settings”,并分别勾选“Allow unspecified CGI modules”或“Allow unspecified ISAPI modules”。

    点击确定

【讨论】:

困扰了我几天,不得不执行此“编辑功能设置”以使公司单点登录插件在经典模式下工作【参考方案9】:
    转到 IIS 管理器。 打开服务器名称,如(PC-Name)\。 然后双击 ISAPI 和 CGI​​ 限制。 然后选择 ASP.NET v4.0.30319(32-bit) Restriction allowed。

【讨论】:

【参考方案10】:

应用程序映射后,请按照以下步骤操作

打开 IIS 单击应用程序池 双击网站 将管理管道模式更改为“经典” 点击确定。

将 .Net Framework 版本更改为低版本

然后点击确定

【讨论】:

【参考方案11】:

尝试将 AppPool 托管管道模式从“集成”更改为“经典”。

【讨论】:

【参考方案12】:

转到 IIS 管理器并单击服务器名称。然后单击 IIS 标题下的“ISAPI 和 CGI​​ 限制”图标。将 ASP.NET 4.0 从“不允许”更改为“允许”。

【讨论】:

强调:点击 SERVER NAME 而不是 SITE NAME 来查找选项 实际上,我什至没有 CGI 选项。我正在使用 Windows 7、64 位。试图让 s-s-rs 工作。 你节省了我的时间 :) 谢谢 :) 确保以管理员身份启动 IIS :) 至少在今天,你是我最喜欢的人。这解决了我一直在追逐几个小时的问题。很好的答案。

以上是关于在 iis 7.0 上运行 .net framework 4.0 网站时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

IIS 7.0 / Windows Server 2008 上的 ASP.NET MVC 3 应用程序出现 404.0 错误

部署 ASP.Net MVC 2.0 应用程序 IIS 7.0

iis环境异常处理

IIS 7.0 / Visual Studio 2010 - 页面的相关配置数据无效

.NET/IIS 友好的内存防病毒扫描

IIS 7.0 MIME 类型 .MP4