IIS7.5上的静态文件处理程序不提供脚本

时间:2010-09-21 16:15:31

标签: asp.net windows iis iis-7.5

我刚尝试将我的第一个Web应用程序部署到Windows 7 Home Premium笔记本上的IIS中。创建应用程序后,我不得不更改为Classic App Pool,然后将该池设置为框架4.0。现在我收到以下错误:

  

HTTP错误404.17 - 未找到请求的内容似乎是   脚本,静态文件处理程序不会提供服务。

请求的网址为 http://localhost:80/pvmms/default.aspx

我担心广泛的谷歌搜索没有给我提供任何明确或明确的信息,而且像往常一样,我转向了专家。

修改 我怀疑这是因为.aspx文件没有框架4.0处理程序映射。但是,aspnet_regi甚至为我的管理员用户提供了指示,并说我需要管理员权限才能运行它。

编辑#2: 我注册了所有框架(2& 4,32和64),现在都可以使用了。我通过手动将.aspx的脚本映射添加到aspnet_isapi并发现了这一点。我不明白为什么安装框架不会这样做,除非我的内存让我失望并且我在安装VS后才启用IIS。

23 个答案:

答案 0 :(得分:118)

现在可能为时已晚,但通常需要运行

aspnet_regiis.exe -i  

安装asp.net后。也许我现在还会这样做。

答案 1 :(得分:63)

除此之外,如果您需要WCF支持,则可能需要运行此命令:

c:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe -i

将v3.0替换为您当前的框架版本。

答案 2 :(得分:51)

尝试访问我编写的WCF服务时,我在IIS 8.5中遇到此错误。原来服务器没有打开WCF HTTP激活功能。选中复选框并单击向导iisreset,开始工作。

Windows Features Panel

答案 3 :(得分:43)

如果您使用的是iis 7.5。

只需转到IIS管理器,打开您的网站属性。

您将在那里看到“处理程序映射”部分,只需转到该部分并搜索“staticFile”。

很可能是列表中的最后一个文件。

然后右键单击它并选择“还原为父级”。

我第一次遇到这种情况时已经浪费了这么多时间,无论如何这将解决你的问题。

答案 4 :(得分:23)

我在使用ASP.NET 4.5的Windows Server 2012时出现此问题,您无法使用aspnet_regiis.exe,只需通过添加角色和功能向导安装ASP .NET 4.5:

enter image description here

您可以在服务器管理器右上角的“管理”菜单中找到“添加角色和功能”菜单项

答案 5 :(得分:14)

我通过启用WCF Services

解决了这个问题

Programs and Features > NET Framework 4.5 Services > WCF Services> HTTP Activation node

但是你必须承认这个整个IIS设置配置/猜测/试用并看到/尝试这个/尝试我们花费4或5天试图寻找解决方案的方法是完全和UTTER JOKE。

SURELY,'IIS'是人类最快的自信心。

答案 6 :(得分:14)

我知道这是一个老问题,但我刚刚在我重建的Windows 8机器上安装了3.5应用程序,我在aspnet_regiis -iru之后仍然得到了这个问题,结果却是ASP.NET 3.5没有勾选应用程序开发功能(发布图像的声誉不足)。

答案 7 :(得分:14)

alt text

我应该看看这个选项

答案 8 :(得分:11)

默认情况下,为您的应用程序创建的应用程序池有可能是版本2.因此,虽然您在列表中看到.svc扩展名的处理程序但它不起作用并将其视为静态文件。您只需打开应用程序池属性并将其切换到版本4.

答案 9 :(得分:8)

再次注册asp.net ....将解决问题。
enter image description here

转到Visual Studio命令提示符,
将asp.net注册为windows \ microsoft.net \ Framework [.Net version num] \ aspnet_regiis.exe -i

答案 10 :(得分:5)

我在设置的Windows 8机器上遇到了同样的问题。我在vs2010之前安装了vs2012,它安装了.NET framework 4.5。我的应用程序池在4.0中运行。我确保我使用aspnet_regiis -i注册了4.0的aspnet。那仍然没有成功。然后我打开了Windows功能并注意到4.5添加了一个名为“.NET Framework 4.5 Advanced Services”的集合。我启用了WCF服务节点及其子节点,然后我的svc端点正确运行。希望这有助于那些正在迁移到Windows 8的人。

答案 11 :(得分:3)

当我遇到同样的问题时,我偶然发现了这个问题。我的问题的根本原因是配置错误的应用程序池。当它需要设置为4.0时,无意中设置为2.0。以下链接的答案帮助我发现了这个问题:http://forums.iis.net/t/1160143.aspx

答案 12 :(得分:2)

我发现另一个可能的解决方案有相同的错误消息。

当尝试将.NET 4.0 Web应用程序设置到新的应用程序池时,我收到了这个奇怪的错误,告诉我它正在尝试使用静态文件处理程序处理我的aspx文件,这没有用。

由于某种原因,ISAPI for .NET 4.0在IIS管理器中的服务器级别的 ISAPI和CGI限制区域中设置为禁用。 将其设置为启用是所有必需的,但IIS 7.5管理器如此复杂且难以理解,花了我很长时间来解决这个问题。

我猜测,因为它是4.0引擎无法处理的4.0应用程序,所以默认使用静态文件处理程序。

答案 13 :(得分:2)

我遇到了同样的问题。当我为IIS添加静态内容功能时,它工作正常。

答案 14 :(得分:2)

对于阅读此内容的其他人:

如果您注册的.Net版本不是在您网站附带的应用程序池的“基本设置”下选择的版本,则会发生这种情况。例如,您的站点应用程序池已选择.Net v2.0但您注册了v4.0

答案 15 :(得分:1)

cmd - >右键单击 - >以管理员身份运行

C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -i

答案 16 :(得分:1)

对于Windows 10 / Framework 4.7,我必须通过以下方法启用HTTP激活:

  1. 控制面板>节目和特征>打开或关闭Windows功能
  2. 在.NET Framework 4.7高级服务下,展开WCF服务,选择以检查HTTP激活以及使用WCF时需要的其他任何内容
  3. 单击“确定”,让安装执行其操作,然后打开管理命令提示符并发出IISRESET命令

答案 17 :(得分:0)

使用IIS管理器,我发现.aspx文件已映射(在“Handler Mappings”下)到ISAPI 2.0 - 即使先前已经安装了ASP.NET 4.5。编辑它们以指向(也)ISAPI 4.0 64bit的可执行文件修复了该问题。

找到了可执行文件 %WINDIR%\ Microsoft.NET \ Framework64 \ v4.0.30319 \ ASPNET_ISAPI.DLL

答案 18 :(得分:0)

我在iis 7.5上收到了此消息,其中包含一个分配给.net 2.0的经典应用程序池。我需要去Handler Mappings并添加两个脚本映射,除了名称之外都是相同的。一个名字是svc-ISAPI-2.0-64,另一个是svc-ISAPI-2.0。请求路径是.svc。可执行文件是%SystemRoot%\ Microsoft.NET \ Framework64 \ v2.0.50727 \ aspnet_isapi.dll。我重启了iis,一切都很开心

答案 19 :(得分:0)

我刚刚解决的最糟糕的情况之一是 - 在Web.config中存在冲突的条目。

在我的本地计算机上,我没有在IIS中注册.woff扩展,所以我使用Web.config添加它。但是在生产服务器上.woff已经注册了mime类型。这导致应用程序级别冲突。

有趣的是,没有记录错误。只是一个猜测工作(当然是第一次)。

所以对我来说,解决方案只是从web.config中删除和/或元素。

答案 20 :(得分:0)

我遇到了同样的问题,我刚刚将网站上的目标框架版本更改为它开发的版本,在IIS中相同。这解决了我的问题。希望这会有所帮助...

谢谢

答案 21 :(得分:0)

这可能是多方面原因,在我的情况下,在应用程序池 - >高级设置 - >启用32位应用程序(应该为真)。之前设置为false。

答案 22 :(得分:-1)

使用CMD或powershell

导航到您的.Net和CPU架构目录

输入此命令:aspnet_regiis –r