如果 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. python发送邮件,文件后缀变成了bin

    问题:在用python做自动化测试时,将html测试报告在邮件中添加文件发送的过程中,发现发送成功后,文件的后缀为.bin 解决方法: 加一行代码 msg_att["Content-Disp ...

  2. python问答

    1)什么是Python?使用Python有什么好处? Python是一种编程语言,包含对象,模块,线程,异常和自动内存管理.Python的好处在于它简单易用,可移植,可扩展,内置数据结构,并且它是一个 ...

  3. 查看linux 用户登录信息及ip

    查看可疑IP登陆 last -f  /var/log/wtmp cat  /var/log/secure  寻找可疑ip登陆次数及信息 who  查看当前登陆用户 -h  忽略头文件信息 -u 显示结 ...

  4. Oracle单表备份三种方案

    备份方案一: 1. 备份 create table [备份名] as select * from [表名]; 2. 恢复 truncate table org_group; insert into o ...

  5. mocha.js

    mocha 如果你听说过“测试驱动开发”(TDD:Test-Driven Development),单元测试就不陌生. 单元测试是用来对一个模块.一个函数或者一个类来进行正确性检验的测试工作. 比如对 ...

  6. PHP7.1以上版本 count()报错

    报错信息如下: count(): Parameter must be an array or an object that implements Countable (View: D:\fookusy ...

  7. node快速起web服务器

    首选,安装http-server模块 npm install http-server -g 在需要打开的静态页面的目录下,开启服务即可 http-server

  8. 每天一个Linux命令:rm(5)

    rm rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉.对于链接文件,只是删除整个链接文件,而原有文件保持不变 注意:使用rm命令要格外小心.因为 ...

  9. Linux安装系统

    服务器与PC 服务器本质上也是以太计算机,相比较家用电脑而言区别如下: 1.服务器更加稳定 2.通常性能比家用机更高 运维工程师的核心职责 保证服务器不间断运行 提升访问效率 保证数据安全 要完成上面 ...

  10. C# ArrayList、HashSet、HashTable、List、Dictionary的区别

    在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求. 由于这种限制不方便,所以出现了ArrayList. ArrayList.List<T> ArrayList是可变长数组,你 ...