IIS错误:由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。

项目场景:

通过IIS发布站点,在IIS里打开C#的asmx接口文件直接访问该接口。


问题描述:

HTTP 错误 404.3 - Not Found

由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。

最可能的原因:

  • 可能是缺少处理程序映射。默认情况下,静态文件处理程序将处理所有内容。
  • 您要使用的功能可能尚未安装。
  • 没有为网站或应用程序启用相应的 MIME 映射。(警告: 请不要为用户不应下载的 .ASPX 页或 .config 文件等内容创建 MIME 映射。)
  • 如果未安装 ASP.NET。

可尝试的操作:

  • 在 system.webServer/handlers 中:
    • 确保映射了当前页所需的处理程序。
    • 请特别注意前提(例如,runtimeVersion、pipelineMode、bitness)并将这些前提与应用程序池的设置进行比较。
    • 请特别注意所需处理程序行中的书写错误。
  • 请确认要使用的功能已经安装。
  • 确认启用了 MIME 映射,或使用命令行工具 appcmd.exe 为网站添加 MIME 映射。
    1. 要设置 MIME 类型,请使用以下语法: %SystemRoot%\windows\system32\inetsrv\appcmd set config /section:staticContent /+[fileExtension='string',mimeType='string']
    2. 变量 fileExtension 字符串是文件扩展名,变量 mimeType 字符串是文件类型说明。
    3. 例如,要为扩展名为“.xyz”的文件添加 MIME 映射: appcmd set config /section:staticContent /+[fileExtension='.xyz',mimeType='text/plain']
    警告: 请在确认您的 Web 服务器需要此 MIME 映射之后再将其添加到列表中。配置文件(如 .CONFIG)或动态脚本页(如 .ASP 或 .ASPX)不应直接下载,应始终通过处理程序来处理。有时会使用其他文件(如数据库文件或 .XML 或 .MDF 等用于存储配置的文件)来存储配置信息。请先确认客户端能否下载这些类型的文件,然后再启用这些文件。
  • 安装 ASP.NET。
  • 创建跟踪规则以跟踪此 HTTP 状态代码的失败的请求。有关为失败的请求创建跟踪规则的详细信息,请单击此处

详细错误信息:

模块   StaticFileModule
通知   ExecuteRequestHandler
处理程序   StaticFile
错误代码   0x80070032
请求的 URL   http://localhost:80/mysite/WebService1.asmx
物理路径   F:\桌面\作业。。。。课程文件\接口开发:加载功能\bootstrapWebServerAPI\WebApplication1\WebService1.asmx
登录方法   匿名
登录用户   匿名

详细信息:

当所请求 URL 的文件扩展名是针对未在服务器上配置的 MIME 类型时,便会发生此错误。您可以为动态脚本页、数据库或配置文件以外的文件的文件扩展名添加 MIME 类型。这些文件类型使用一个处理程序来处理。您不应允许直接下载动态脚本页、数据库或配置文件。

查看详细信息 »icon-default.png?t=LA92https://go.microsoft.com/fwlink/?LinkID=62293&IIS70Error=404,3,0x80070032,22000


原因分析:

       其中在页面打印的详细错误信息中,看到了当前Asp的页面的处理程序是StaticFile 程序,这里很明显是不正常的。

我们都知道Asp页面是动态脚本页,它和Aspx文件一样是由专门的程序来处理的,而StaticFile程序是用来处理静态网页的程序,肯定解析不了Asp文件……

  那么一定是我们没有指定Asp文件的处理程序才会出现这种情况。

  在网站功能视图下双击处理程序映射,我们可以看到处理各种特定请求类型的响应资源,其中有Aspx的,还有默认的*文件的处理程序是StaticFile ,唯独没有找到处理Asp文件的程序。如图:


解决方案:

        控制面板中打开程序,选择“程序和功能”中的“打开或关闭Windows功能”或使用CMD命令:OptionalFeatures,找到Internet信息服务—万维网服务—应用程序开发功能,勾选Asp文件夹和ISAPI扩展文件夹(最好也将最上面的.NET Framework里的功能也勾选上,这两个功能如果没安装,将会下载一会儿,不用急)。具体如图:

        勾选过后再到程序映射中查看就能看到asp文件的处理程序了。再次打开相应的文件就能成功。

        注:如果是使用C#编写的接口,注意将 该语句取消注释。否则不能直接通过地址打开相应的文件。

     // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
    [System.Web.Script.Services.ScriptService]

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值