“由于扩展​​程序配置,无法提供您请求的页面。” 错误信息


271

尝试运行我的应用程序时出现此错误消息。我不知道如何解决:

HTTP错误404.3-找不到由于扩展名配置,无法提供您请求的页面。如果页面是脚本,请添加处理程序。如果应下载文件,请添加一个MIME映射。

这是错误页面的屏幕截图: 替代文字

我该如何解决此错误?


1
源代码会更有用,而不是错误页面
gsharp 2010年

1
您需要查看源代码的哪一部分?

1
按照上述说明进行操作后,如果您也遇到相同的错误,请通过以下链接进行操作,然后按照以下步骤操作:单击此处
2013年

Answers:


170

使用aspnet_regiis.exe注册您正在使用的.NET Framework版本。

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

注意-对于Windows 8/10用户,请参见下面的JohnOpincar的其他答案。以及Kevin Brydon的评论/提示。


11
事实上,我确实先安装了Visual Studio,然后安装了IIS。我当前正在运行“ aspnet_regiis.exe -i”命令。希望这可以修复错误。

5
当我尝试访问.svc WCF服务时遇到此错误时,也为我工作。
atconway 2012年

注意-对于Windows 8用户,请参见下面的
JohnOpincar

+1对于通过“搜索”找到此文件的其他人,您可能会发现在.NET安装上执行修复更为容易,而不是尝试将aspnet_regiis.exe作为阻力最小的路径来运行,从而解决了该问题。在安装IIS角色之前,已经在安装.NET 4.5.2(通过Windows Update)的盒子上看到了很多东西,这有点令人沮丧,因为这些盒子会将.NET 4作为其应用程序池中的一个选项显示,但是如果您的应用程序像我们一样需要.NET 4.5,它将失败,并显示上述消息。
aolszowka

245

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

  • 打开控制面板→
  • 程序和功能→
  • 打开或关闭Windows功能→
  • Internet信息服务(IIS)→
  • 万维网服务→
  • 应用程序开发功能→
  • 检查适当的项目,例如启用ASP.NET。(即,安装您要用来配置网站的适当版本)

参考:检查此问题的解决方案以供参考


217
我不得不检查.NET Framework 4.5 Advanced Services> WCF Services>HTTP Activation
凯文Brydon

13
从管理员命令提示符运行以下命令:“ dism / Online /启用功能/ FeatureName:WCF-HTTP-激活/全部”,或“ dism / Online /启用功能/ FeatureName:WCF-HTTP-Activation45 /全部”
Paul Suart

就在我习惯运行Regis时,Microsoft再次对其进行了更改。好吧,至少这要容易得多-与安装WIF相似。现在,他们应该添加SQL以打开/关闭Windows功能。
nocarrier

@KevinBrydon-非常感谢!您的提示对解决Windows 2012 R2上的问题很有帮助。
阿米尔·瓦杜瓦瓦拉

在Windows Server 2012 R2中,启用“ Http激活”对我有用。
Dhanuka777

117

我在Windows 10上修复了该问题:

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

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

  3. 检查HTTP激活。

  4. OK完成。


5
在Windows 10上对我有效!谢谢!
Sergey Malyutin

1
也为我赢得了胜利8.1
Qerts '16

在Win10
iis7

升级到Windows 1709并必须重新安装IIS后,此方法才起作用
garrettendi

非常适合我。理想的解决方案,例如“当请求的URL的文件扩展名是服务器上未配置的MIME类型时,会发生此错误”
eranda.del

84

在我的情况下,我需要为要提供给Web配置的每个文件扩展名添加MIME类型:

<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>

2
1+它解决了我的问题...我试图加载,.json并且一直遇到OP错误,最后我最终mimeMap在web.config中添加了并解决了问题
Nick Kahn,2015年

我还需要为asmx文件添加MIME类型吗?
Shilpa Soni 2015年

@ShilpaSoni asmx文件是asp.net服务器文件(不是静态内容)。因此您不需要,也不需要从客户端下载它们。
Mahmoodvcs 2015年

1
这里的文件扩展名映射到其相应的MimeType的,从发现这个 SO问题
红豌豆

21

万一这对任何人都有帮助,在尝试运行aspnet_regiis.exe时出现此错误:

操作失败,出现0x8007000B

试图加载格式错误的程序

事实证明,该服务器运行的是64位2008,而我正在尝试运行该实用程序的32位版本。运行\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727中找到的版本可解决此问题。

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

7

我和我的客户也有同样的情况。我们有自己的产品,可以安装网站。安装程序将配置所有内容:IIS池,站点,web.config等。

我们使用安装程序安装了另一个网站。我们输入了相同的参数,因此两个站点中的web.configs都相同。

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

有人删除了旧站点上的所有处理程序映射。如果转到“处理程序映射”,则应该在其中看到aspx,asmx以及其他扩展名和处理程序的名称。因此,在旧站点中所有这些记录都丢失了。

因此,我建议首先检查“处理程序映射”-那里必须有很多记录。创建一个新的网站并进行比较以了解应该有多少个。

谁删除了他们,一个人或另一个程序,我不知道。如果有人可以告诉您是否存在某个跟踪应用程序,该应用程序可以告诉用户domain \ john在日期“ 07.03.2012 12:34”处修改了该网站,则将很有用。



6

我通过安装所有WCF功能解决了Windows 2012服务器上的问题。

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

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

C)检查(启用)功能。我检查了所有。

D)安装


2
我只检查了HTTP激活和TCP激活,它对我有用。还是很感谢你!
Aleksei Mialkin

6

运行Windows Server 2008 R2 64位和.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).

3

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

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



2

我也有此错误,在Windows Server 2008 IIS 7上,我没有安装visual studio,因此重新安装/修复.NET 4.0可以解决问题。


1

要添加扩展以在IIS中投放,请按照以下步骤操作:

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

1
我在.ts(类型脚本文件)的情况下测试了此解决方案,您必须在MIME类型Typescript字段(.ts)中声明。我使用text / x.typescript作为mime类型
freedeveloper


0

验证是否已将IIS中的应用程序池(对于IIS7或更高版本)选择为集成。在这种情况下,可能更改为“经典”可以解决此问题。


0

关于Server 2016,我应该添加:

  1. 运行此命令:aspnet_regiis -lv从此目录: C:\Windows\Microsoft.NET\Framework\v2.0.50727\ 这将为您提供最佳状态信息

  2. 在Server 2016上,按顺序安装.net和iis似乎不是问题。

  3. Server 2016上更可能出现问题的原因是计算机上未安装asp.net。


0

对于 Windows Server 2016

  1. 公开Server Manager表格
  2. Manage -> Add Roles and Features
  3. 下一页直到Features页面
  4. 检查WCF Services所有子功能
  5. NextInstall

0

Windows Server 2012 R2上的PHP 7.3应用程序IIS

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

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

2)添加FASTCGI模块映射

1)

转到服务器管理器>添加角色和功能从服务器池中选择服务器转到功能> WCF服务,我选择了所有类别,然后安装了

2)

转到IIS>选择站点在中央窗格中,选择“处理程序映射”。在右侧窗格中,选择“添加模块映射”。

在编辑窗口中:

请求路径:*。php

模块:FastCgimodule

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

名称:PHP7.3

现在,我考虑一下。可能有一种在Web配置中添加此处理程序映射的方法,因此,如果将站点迁移到另一台服务器,则不必一遍又一遍地添加此映射。

编辑:就在这里。将此添加到Web配置的部分。

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


0

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

这可能会对MVC产生影响,特别是如果您Static File Handler位于Extensionless...处理程序之上(在IIS/ 之下Handler Mappings),但是当您仅临时需要此方法(例如激活SSL证书)时可能会变通。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.