“您所请求的页面由于扩展配置而无法被服务”;错误消息

当我试图运行我的应用程序时,我得到这个错误消息。我不知道怎么解决:

HTTP错误404.3 -未找到页面 您所要求的服务无法提供 因为延伸 配置。如果页面是 脚本,添加一个处理程序。如果文件

下面是错误页面的截图: alt text

我能做什么来修复这个错误?

512517 次浏览

使用aspnet_regiis.exe来注册你正在使用的。net框架的版本。

这是一个常见的问题,当IIS安装在VS或。net框架之后时就会发生。

注意:对于Windows 8/10用户,请参见下面是john nopincar的另一个答案。还有Kevin Brydon的评论/建议。

我的客户也遇到了同样的情况。我们有自己的产品,安装一个网站。安装程序配置所有内容:IIS池、站点、web。配置等。

我们使用安装程序安装了另一个网站。我们输入了相同的参数,所以web。两个站点的配置碰巧是相同的。

然而,新安装的站点运行良好,而旧的则不行。然后我打开了两个IIS管理器窗口,开始比较网站设置的差异。我发现了一个问题。

有人删除了旧站点的所有处理程序映射。如果你转到“处理程序映射”,你应该看到aspx, asmx和其他扩展名和处理程序的名称。所以,在旧的网站上,所有的记录都不见了。

因此,我建议首先检查“Handler映射”—那里一定有很多记录。创建一个新的网站,并进行比较,了解应该有多少个网站。

是谁删除的,一个人还是另一个程序,我不知道。如果有人能告诉是否存在一些跟踪应用程序,它会告诉用户域\john在日期“07.03.2012 12:34”正在修改网站,这将是有用的。

顺便说一下,我刚刚发现了这篇文章: http://blogs.msdn.com/b/webtopics/archive/2010/03/19/iis-7-5-how-to-enable-iis-configuration-auditing.aspx 它解释了如何审计IIS上的更改。对于那些面临类似问题的人,我建议打开审计,然后看看为什么你的网站停止工作

如果这对任何人都有帮助,我在试图运行aspnet_regiis.exe时得到这个错误:

对0x8007000B的操作失败

试图加载格式不正确的程序

事实证明,服务器运行的是2008年64位,而我试图运行32位版本的实用程序。运行在\Windows\Microsoft.NET\Framework64\v2.0.50727中找到的版本修复了这个问题。

c:\Windows\Microsoft.NET\Framework64\v2.0.50727>aspnet_regiis.exe -i

在Windows 8/10中,你必须使用

  • 打开控制面板→
  • 节目及特色→
  • 打开或关闭Windows功能→
  • Internet Information Services (IIS)→
  • 万维网服务→
  • 应用开发特性→
  • 检查相应的项目,例如启用ASP.NET。(即安装你想要配置你的网站的适当版本)

参考:检查这道题的解答,以供参考

我也有这个错误,在Windows Server 2008 IIS 7上,我没有安装visual studio,所以重新安装/修复。net 4.0就可以了。

验证IIS (IIS7或以上版本)中的应用程序池是否选择为集成的。在这种情况下,可能改变经典可以解决这个问题。

在我的情况下,我需要为每个文件扩展名添加MIME类型,我想为web配置服务:

<system.webServer>
<staticContent>
<mimeMap fileExtension=".shp" mimeType="application/octet-stream" />
<mimeMap fileExtension=".dbf" mimeType="application/octet-stream" />
<mimeMap fileExtension=".kml" mimeType="text/xml" />
</staticContent>
...
</system.webServer>

我试图在我的windows 7 pc上设置MediaWiki,并得到这个错误。

我的解决方案是为php创建全局FastCGI处理程序映射

正如@Mahmoodvcs提到的,我需要为我需要直接托管/下载的文件扩展名设置/添加MIME类型,在这种情况下是Heroku的转储文件(postgres的数据库备份),所以为了设置一个公共IIS服务器,你可以下载这些文件,而不需要AWS S3桶或HTTP共享,如dropbox,这是一个很棒的选择!

<staticContent>
<mimeMap fileExtension=".dump" mimeType="application/octet-stream" />
</staticContent>

我修复了我的问题在Windows 2012服务器安装所有WCF功能。

A)服务器管理>管理[链接左上]>添加角色和功能

B)在功能> .Net Framework 4.5功能> WCF服务

C)检查(启用)功能。我都检查过了。

D)安装

我在Windows 10上修复了这个问题:

  1. 进入控制面板-程序和功能-打开或关闭Windows功能。

  2. 选择。net Framework 4.6高级服务- WCF服务

  3. 检查HTTP激活。

  4. 好做。

要添加一个扩展,以便在IIS中服务

  1. 打开IIS管理器并导航到要管理的级别。
  2. 在功能视图中双击MIME类型。
  3. 在Actions窗格中,单击Add。
  4. 在“添加MIME类型”对话框中,在“文件扩展名”文本框. ...中输入文件扩展名键入MIME类型
  5. 在MIME类型文本框中。
  6. 单击OK。

关于Server 2016,我需要补充:

  1. 执行命令:aspnet_regiis -lv from this dir: C:\Windows\Microsoft.NET\Framework\v2.0.50727\这给你

  2. 在Server 2016上,不按顺序安装。net和iis

  3. 在Server 2016上更有可能出现的问题很简单

    .net is not installed on the machine. (/p> .

运行Windows Server 2008 R2 64bit和。net framework 4.5,在这个位置运行这个命令,并且成功:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -i

输出:

Microsoft (R) ASP.NET RegIIS version 4.0.30319.0
Administration utility to install and uninstall ASP.NET on the local machine.
Copyright (C) Microsoft Corporation.  All rights reserved.
Start installing ASP.NET (4.0.30319.0).
.....
Finished installing ASP.NET (4.0.30319.0).

对于Windows Server 2016

  1. 打开Server Manager表单
  2. __abc0 -> __abc1
  3. 接下来直到Features
  4. 检查WCF Services特性的所有子特性
  5. NextInstall

PHP 7.3应用程序IIS在Windows Server 2012 R2

这对我来说是一个两步的过程。

1)启用WCF服务-重启服务器

2)添加FASTCGI模块映射

1)

进入服务器管理器>添加角色和特性 从服务器池中选择您的服务器 进入功能> WCF服务 我选择了所有类别,然后安装

2)

Go to IIS >所选站点 在中心窗格中选择处理程序映射 右边窗格选择添加模块映射

在编辑窗口内:

请求路径:*.php

模块:FastCgimodule

可执行文件:我浏览到PHP文件夹中的PHP -cgi.exe

名称:PHP7.3

现在我想起来了。也许有一种方法可以在web配置中添加这个处理程序映射,这样如果你把你的网站迁移到另一个服务器上,你就不必一遍又一遍地添加这个映射。

编辑:在这里。将此添加到web-config部分。

<add name="PHP-FastCGI" verb="*"
path="*.php"
modules="FastCgiModule"
scriptProcessor="c:\php\php-cgi.exe"
resourceType="Either" />

video设置为你的IIS MIME Type

这解决了我的问题。

裁判:https://stackoverflow.com/a/8853443/8832133

如果你试图查看一个无扩展名的文件,对我有用的是添加MIME Type: 文件扩展名: . MIME类型: text/plain

这可能会有一些MVC的影响,特别是如果你的Static File HandlerExtensionless...处理程序之上(在IIS / Handler Mappings之下),但当你只是暂时需要这样做时,比如激活SSL Certs,这可能是一种变通方法。