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

本文详细介绍了当系统未默认为IIS注册WCF服务的svc文件MIME映射时,如何通过管理员身份运行特定命令进行解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原因:系统没有默认为IIS注册WCF服务的svc文件的MIME映射。

解决方法:管理员身份运行C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe -i

<think>我们正在解决IIS部署后出现HTTP错误404.3问题404.3错误通常是由于缺少处理程序映射MIME类型配置不当引起的。根据引用[2],我们可以按照以下步骤解决:###步骤1:检查处理程序映射1.打开IIS管理器(运行`inetmgr`)2.选择对的网站3.双击“处理程序映射”4.确保`.asmx`扩展名已映射到`System.Web.Services.Protocols.WebServiceHandlerFactory`(对于WebService)或相处理程序如果缺少处理程序映射,需要手动添加:-对于ASP.NETWebService(.asmx),使用以下处理程序:-请求路径:`*.asmx`-类型:`System.Web.Services.Protocols.WebServiceHandlerFactory`-名称:`WebServiceHandlerFactory-Integrated`(或其他描述性名称)###步骤2:检查MIME类型1.IIS管理器中选择网站2.双击“MIME类型”3.确保存在以下MIME类型:-`.asmx`->`application/soap+xml`或`text/xml`(根据实际情况)-如果还有其他自定义文件类型,也需添加###步骤3:重新注册ASP.NET以管理员身份运行命令提示符,执行:```bashaspnet_regiis-i```这会重新安装当前框架版本的ASP.NET,并注册处理程序映射。###步骤4:检查ASP.NET功能是否安装在服务器管理器中确认“ASP.NET”功能已安装:1.打开“服务器管理器”>“管理”>“添加角色和功能”2.确保以下角色服务已安装:-`Web服务器(IIS)`>`用程序开发`>`ASP.NET`(以及所需版本)###步骤5:验证用程序池配置-确保用程序池使用与项目匹配的.NETCLR版本(如v4.0)-将用程序池的“托管管道模式”设置为“集成”(推荐)或“经典”###步骤6:检查文件系统权限确保用程序池标识(如`IISAppPool\DefaultAppPool`)对网站根目录有读取权限。###示例:处理程序映射配置(针对.asmx)|请求路径|类型|名称||----------|------|------||*.asmx|System.Web.Services.Protocols.WebServiceHandlerFactory|WebServiceHandlerFactory-Integrated|###补充说明如果项目使用静态文件(如引用[1]),确保静态文件处理程序已启用(通常`StaticFile`处理程序默认存在)。---###相关问题1.如何为IIS添加自定义文件类型的处理程序映射?2.重新注册ASP.NET后仍无法解决404.3错误,该如何排查?3.IIS中托管管道模式“集成”与“经典”有何区别?4.如何为IIS中的WebService配置HTTPS访问?[^1]:引用自静态文件中间件配置[^2]:引用自IIS404.3错误官方解决方案</think>### C# IIS 部署 HTTP 错误 404.3 Not Found 解决方案 HTTP 错误 404.3 通常由 **处理程序映射缺失** 或 **MIME 类型配置错误** 引起。以下是完整的解决步骤: #### 1. **重新注册 ASP.NET**(关键步骤) 以管理员身份运行命令提示符,执行: ```bash aspnet_regiis.exe -i ``` 这会重新安装 ASP.NET 并注册所有必需的处理程序映射[^2]。 #### 2. **检查处理程序映射** 在 IIS 管理器中: 1. 选择网站 → 双击 **"处理程序映射"** 2. 确认存在 `.asmx` 的映射: - 名称:`WebServiceHandlerFactory-Integrated` - 路径:`*.asmx` - 处理程序:`System.Web.Services.Protocols.WebServiceHandlerFactory` 3. 若缺失,手动添加: - 请求路径:`*.asmx` - 类型:`System.Web.Services.Protocols.WebServiceHandlerFactory` - 名称:`WebServiceHandlerFactory-Integrated` #### 3. **配置 MIME 类型** 1.IIS 中选择网站 → 双击 **"MIME 类型"** 2. 添加以下类型: ```bash 扩展名: .asmx MIME 类型: application/soap+xml # 或 text/xml ``` 3. 同时添加相关类型(如有需要): ```bash .svc → application/soap+xml .config → text/xml ``` #### 4. **验证 ASP.NET 功能安装** 在服务器管理器中确认: 1. **ASP.NET 4.8** 或对版本已安装 2. IIS 角色服务包含: - `ASP.NET`(必需) - `ISAPI 扩展` - `ISAPI 过滤器` #### 5. **检查静态文件处理** 若涉及静态文件(如引用[1]),在 `Startup.cs` 中确认: ```csharp app.UseStaticFiles(); // 默认静态文件支持 app.UseStaticFiles(new StaticFileOptions { FileProvider = new PhysicalFileProvider( Path.Combine(Directory.GetCurrentDirectory(), "MyStaticFiles")), RequestPath = "/StaticFiles" }); ``` #### 6. **用程序池设置** 1.用程序池的 **.NET CLR 版本** 设为与项目匹配(如 v4.0) 2. **托管管道模式** 改为 `集成模式` > **验证方法**:访问 `http://localhost:8070/WebService.asmx?wsdl` 返回 WSDL 描述文档 --- ### 常见错误原因排查表 | 原因 | 检查位置 | 解决方案 | |------|----------|----------| | 处理程序缺失 | IIS 处理程序映射 | 添加 .asmx 映射或重装 ASP.NET | | MIME 类型错误 | IIS MIME 类型设置 | 添加 .asmx → application/soap+xml | | ASP.NET 未安装 | 服务器管理器 | 安装 ASP.NET 角色服务 | | 管道模式错误 | 用程序池 | 改为集成模式 | --- ### 相关问题 1. 如何为 IIS 中的自定义文件扩展添加处理程序映射? 2. ASP.NET Core 与 ASP.NET 在 IIS 部署中有何配置差异? 3.404.3 外,IIS 部署 WebService 常见错误有哪些及如何修复? 4. 如何在 IIS配置 HTTPS 访问 WebService? [^1]: 静态文件中间件配置参考 [^2]: IIS 官方 404.3 解决方案指南
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值