在 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 服务器上的 ISAPI
和 CGI
限制列表设置,无法提供您请求的页面”。
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