首页 文章

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

提问于
浏览
119

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

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

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

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

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

EDIT #2: 我注册了所有框架(2&4,32和64),现在都可以了 . 我通过手动将 .aspx 的脚本 Map 添加到aspnet_isapi和瞧来找到了这个 . 我不这样做,除非我的内存让我失望并且我在安装VS后才启用了IIS .

23 回答

  • 1

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

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

  • -1

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

    • 控制面板>程序和功能>打开或关闭Windows功能

    • 在.NET Framework 4.7高级服务下,展开WCF服务,选择检查HTTP激活以及使用WCF时需要的其他任何内容

    • 单击“确定”,让安装执行其操作,然后打开管理命令提示符并发出IISRESET命令

  • 8

    使用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中找到

  • 14

    我在设置的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 endpoints 正确运行 . 希望这有助于那些正在转向Windows 8的人们 .

  • 3

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

  • 11

    我有同样的问题 . 当我为IIS添加静态内容feaute时,它工作正常 .

  • 1

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

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

    出于某种原因,ISAPI for .NET 4.0在IIS管理器的服务器级别的 ISAPI and CGI Restrictions 区域中设置为禁用 . Setting it to enabled was all that was required ,但是IIS 7.5管理器是如此令人费解并且难以理解,花了我很长时间来解决这个问题 .

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

  • 42

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

    aspnet_regiis.exe -i
    

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

  • 0

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

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

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

  • 0

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

    Windows Features Panel

  • 2

    如果您使用的是iis 7.5 .

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

    您将在那里看到“Handler Mappings”部分,只需转到该部分并搜索“staticFile” .

    最有可能是列表中的最后一个文件 .

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

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

  • 2

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

    enter image description here

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

  • 11

    alt text

    我想应该看看这个选项

  • 21

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

  • 116

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

  • 63

    我通过启用 WCF Services 解决了这个问题

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

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

    原来,'IIS'是人类最快的自信心 .

  • 0

    再次注册asp.net ....将解决问题 .

    enter image description here

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

  • 14

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

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

  • 0

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

  • 0

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

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

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

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

  • 2

    我有同样的问题,我只是将网站上的目标框架版本更改为它开发的版本,在IIS中相同 . 这解决了我的问题 . 希望这可以帮助...

    谢谢

  • 45

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

  • 5

    使用CMD或powershell导航到您的.Net和CPU架构目录

    输入以下命令: aspnet_regiis –r

相关问题