如果 IIS 承载的某个服务失败,则可能会看到以下症状之一:

  • 当浏览到 .svc 文件时,不能识别该文件,浏览器显示空白页,或显示文件的文本而不是服务的帮助页,如下面的示例所示。

     
     
    <%@ServiceHost language=c# Debug="true" Service="Microsoft.ServiceModel.Samples.CalculatorService" %>
    
  • 当试图访问 Web 承载的服务时,可能会遇到以下异常。
     
     
    Unhandled Exception: System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (405) Method not allowed.
    

    如果未安装 ASP.NET 或者未将 .svc 文件类型映射到 aspnet_isapi.dll,则通常会发生这种情况。
    若要纠正此问题,必须确保已启用 aspnet_isapi 作为 IIS 的 Web 服务扩展。可以使用 IIS 管理器,或通过从 .NET Framework 安装目录运行 aspnet_regiis –i –enable 来查看和修改此设置。完成此操作后,验证 ASP.NET 是否正在运行。为此,请将测试 .aspx 文件放在 \inetpub\wwwroot 目录中并确保可以用浏览器浏览该文件。

  • 如果在安装 Windows Communication Foundation (WCF) 之后安装了 IIS,必须运行以下命令。
     
     
    "%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r
    

    这将在 IIS 中注册所需的脚本映射。
    还必须确保将 .svc 文件类型映射到 aspnet_isapi.dll。

验证是否已将 svc 文件类型映射为可由 IIS 5.1 或 6.0 中的 aspnet_isapi.dll 处理

  1. 在“控制面板”中打开“计算机管理”

  2. 展开“服务和应用程序”、“Internet 信息服务”

  3. 右键单击“网站”并选择“属性”

  4. “主目录”选项卡上单击“配置”

  5. 在应用程序映射列表中验证 .svc 文件是否已映射到 aspnet_isapi.dll。如果尚未映射该文件:

    1. 单击“添加”
    2. “添加/编辑应用程序扩展名映射”对话框中,单击“浏览”
    3. 浏览到包含 aspnet_isapi.dll 的文件夹,然后单击“打开”
    4. 指定 .svc 作为扩展名。
    5. 确保“检查文件是否存在”未选中。
    6. 单击“确定”,然后再次单击“确定”以返回到“网站属性”对话框。
  6. 单击“确定”关闭对话框。

验证 svc 文件类型已在 IIS 7.0 中正确映射

  1. 打开命令提示符窗口并键入 start inetmgr,以打开 Internet 信息服务 (IIS) MMC 管理单元。

  2. 在左侧窗格中,展开包含计算机名称的节点,然后展开“网站”节点,然后选择“默认网站”

  3. “功能视图”中双击“处理程序映射”

  4. 在应用程序映射列表中验证 .svc 文件是否已映射到 aspnet_isapi.dll。如果尚未映射该文件:

    1. 单击“添加管理处理程序”
    2. “请求路径:”中键入 *.svc
    3. “类型”文本框中键入 System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    4. “名称:”文本框中键入 svc-Integrated
    5. 单击“确定”
    6. 单击“添加脚本映射”
    7. “请求路径:”中键入 *.svc
    8. “可执行文件:”文本框中键入 %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
    9. “名称:”文本框中键入 svc-ISAPI-2.0
    10. 使用“上移/下移”控件,确保托管处理程序 (svc-Integrated) 在列表中出现在 aspnet_isapi (svc-ISAPI-2.0) 处理程序之前。
    11. 单击“确定”

IIS 承载的服务失败的更多相关文章

  1. WCF学习笔记(2)——使用IIS承载WCF服务

    通过前面的笔记我们知道WCF服务是不能独立存在,必须“寄宿”于其他的应用程序中,承载WCF服务的应用程序我们称之为“宿主”.WCF的多种可选宿主,其中比较常见的就是承载于IIS服务中,在这里我们来学习 ...

  2. 使用IIS承载WCF服务

    作者:jiankunking 出处:http://blog.csdn.net/jiankunking 1.WCF能够方便的通过IIS承载,此承载模型与ASP.NET和ASP.NET Web Servi ...

  3. 在 IIS 中承载 WCF 服务

    本主题概述了创建 Internet 信息服务 (IIS) 中承载的 Windows Communication Foundation (WCF) 服务所需的基本步骤. 本主题假设您熟悉 IIS 且了解 ...

  4. Wcf for wp8 使用iis Express 承载Wcf服务部署发布网站(三)

    我们接下来要做的是 本地电脑当作服务器(模拟外网服务器)来承载Wcf服务程序,通过引用本地电脑ip地址访问wcf服务程序接口 http://192.168.1.123/Service1.svc 一.先 ...

  5. IIS发布WCF服务项目之本地

    最近由于项目需求,要做一个上传文件附件的功能,由于是多用户访问,所以这就用到了WCF服务,程序编写完成就需要发布了, 下面记录下发布到IIS的过程: 1,安装IIS 第一步:检查Windows7中II ...

  6. WCF中常见的几种Host,承载WCF服务的方法

    1:写在前面 我们都知道WCF在运行的时候必须自己提供宿主来承载服务.WCF 本身没有附带宿主,而是提供了一个 ServiceHost 的类,该类允许您在自己的应用程序中host WCF 服务.然后调 ...

  7. [老老实实学WCF] 第三篇 在IIS中寄存服务

    老老实实学WCF 第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我 ...

  8. (转) [老老实实学WCF] 第三篇 在IIS中寄存服务

    第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我们对WCF的编程生 ...

  9. 在IIS中寄存服务

    http://blog.csdn.net/songyefei/article/details/7381595 第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型 ...

随机推荐

  1. springCloud的使用05-----路由网关(zuul)

    zuul的主要功能是路由转发和过滤,比如让所有/api-a/*的请求都转发到服务器a上,所有/api-b/*的请求都转发到服务器b上,zuul默认和ribbon结合实现了负载均衡的功能. 1 zuul ...

  2. [fW]中断处理函数数组interrupt[]初始化

    中断处理函数数组interrupt[]初始化 2011-05-13 15:51:40 分类: LINUX 在系统初始化期间,trap_init()函数将对中断描述符表IDT进行第二次初始化(第一次只是 ...

  3. java虚拟机规范(se8)——class文件格式(一)

    第四章 class文件格式 本章介绍了java虚拟机的class文件格式.每一个class文件包含一个单独的类或者接口的定义.虽然类和接口不一定都定义在文件中(比如类和接口亦可以通过类加载器直接生成) ...

  4. Primeng UI框架ionic3 中下拉选择插件p-dropdown 插件的使用方法

    1.html引入: <p-dropdown float-right [options]="sortOption" [(ngModel)]="sortNow" ...

  5. .net Core AJAX使用Header传递参数,以JsonResult返回信息

    function postHeader() { $.ajax({ url : "/myTest/PostHeader?time="+ (new date()).getTime(), ...

  6. ARM指令adr adrl ldr mov

    ADR是一条小范围的地址读取伪指令,它将基于PC的相对偏移的地址值读到目标寄存器中.格式:ADR register,exper. 编译源程序时,汇编器首先计算当前PC值(当前指令位置)到exper的距 ...

  7. 力扣 ——3Sum python (三数之和)实现

    题目描述: 中文: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 英文: Give ...

  8. tomcat的server.xml配置

    <Host>标签 appBase属性:            1 这个目录下面的子目录将自动被部署为应用.           2 这个目录下面的.war文件将被自动解压缩并部署为应用 一 ...

  9. PostgreSQL按年月日分组(关键词:extract time as Year/Month/Day)

    Select EXTRACT(year from cast(joindate as timestamp)) as Year, EXTRACT(month from cast(joindate as t ...

  10. Mysql学习笔记(003)-案例讲解基础查询

    案例讲解基础查询 #.下面的语句是否可以执行成功 SELECT last_name, first_name, salary AS sal FROM employees; #.下面的语句是否可以执行成功 ...