IIS 承载的服务失败
如果 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 处理
在“控制面板”中打开“计算机管理”。
展开“服务和应用程序”、“Internet 信息服务”。
右键单击“网站”并选择“属性”。
在“主目录”选项卡上单击“配置”。
在应用程序映射列表中验证 .svc 文件是否已映射到 aspnet_isapi.dll。如果尚未映射该文件:
- 单击“添加”。
- 在“添加/编辑应用程序扩展名映射”对话框中,单击“浏览”。
- 浏览到包含 aspnet_isapi.dll 的文件夹,然后单击“打开”。
- 指定 .svc 作为扩展名。
- 确保“检查文件是否存在”未选中。
- 单击“确定”,然后再次单击“确定”以返回到“网站属性”对话框。
单击“确定”关闭对话框。
验证 svc 文件类型已在 IIS 7.0 中正确映射
打开命令提示符窗口并键入 start inetmgr,以打开 Internet 信息服务 (IIS) MMC 管理单元。
在左侧窗格中,展开包含计算机名称的节点,然后展开“网站”节点,然后选择“默认网站”。
在“功能视图”中双击“处理程序映射”。
在应用程序映射列表中验证 .svc 文件是否已映射到 aspnet_isapi.dll。如果尚未映射该文件:
- 单击“添加管理处理程序”。
- 在“请求路径:”中键入 *.svc。
- 在“类型”文本框中键入 System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089。
- 在“名称:”文本框中键入 svc-Integrated。
- 单击“确定”。
- 单击“添加脚本映射”。
- 在“请求路径:”中键入 *.svc。
- 在“可执行文件:”文本框中键入 %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll。
- 在“名称:”文本框中键入 svc-ISAPI-2.0。
- 使用“上移/下移”控件,确保托管处理程序 (svc-Integrated) 在列表中出现在 aspnet_isapi (svc-ISAPI-2.0) 处理程序之前。
- 单击“确定”。
IIS 承载的服务失败的更多相关文章
- WCF学习笔记(2)——使用IIS承载WCF服务
通过前面的笔记我们知道WCF服务是不能独立存在,必须“寄宿”于其他的应用程序中,承载WCF服务的应用程序我们称之为“宿主”.WCF的多种可选宿主,其中比较常见的就是承载于IIS服务中,在这里我们来学习 ...
- 使用IIS承载WCF服务
作者:jiankunking 出处:http://blog.csdn.net/jiankunking 1.WCF能够方便的通过IIS承载,此承载模型与ASP.NET和ASP.NET Web Servi ...
- 在 IIS 中承载 WCF 服务
本主题概述了创建 Internet 信息服务 (IIS) 中承载的 Windows Communication Foundation (WCF) 服务所需的基本步骤. 本主题假设您熟悉 IIS 且了解 ...
- Wcf for wp8 使用iis Express 承载Wcf服务部署发布网站(三)
我们接下来要做的是 本地电脑当作服务器(模拟外网服务器)来承载Wcf服务程序,通过引用本地电脑ip地址访问wcf服务程序接口 http://192.168.1.123/Service1.svc 一.先 ...
- IIS发布WCF服务项目之本地
最近由于项目需求,要做一个上传文件附件的功能,由于是多用户访问,所以这就用到了WCF服务,程序编写完成就需要发布了, 下面记录下发布到IIS的过程: 1,安装IIS 第一步:检查Windows7中II ...
- WCF中常见的几种Host,承载WCF服务的方法
1:写在前面 我们都知道WCF在运行的时候必须自己提供宿主来承载服务.WCF 本身没有附带宿主,而是提供了一个 ServiceHost 的类,该类允许您在自己的应用程序中host WCF 服务.然后调 ...
- [老老实实学WCF] 第三篇 在IIS中寄存服务
老老实实学WCF 第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我 ...
- (转) [老老实实学WCF] 第三篇 在IIS中寄存服务
第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我们对WCF的编程生 ...
- 在IIS中寄存服务
http://blog.csdn.net/songyefei/article/details/7381595 第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型 ...
随机推荐
- python发送邮件,文件后缀变成了bin
问题:在用python做自动化测试时,将html测试报告在邮件中添加文件发送的过程中,发现发送成功后,文件的后缀为.bin 解决方法: 加一行代码 msg_att["Content-Disp ...
- python问答
1)什么是Python?使用Python有什么好处? Python是一种编程语言,包含对象,模块,线程,异常和自动内存管理.Python的好处在于它简单易用,可移植,可扩展,内置数据结构,并且它是一个 ...
- 查看linux 用户登录信息及ip
查看可疑IP登陆 last -f /var/log/wtmp cat /var/log/secure 寻找可疑ip登陆次数及信息 who 查看当前登陆用户 -h 忽略头文件信息 -u 显示结 ...
- Oracle单表备份三种方案
备份方案一: 1. 备份 create table [备份名] as select * from [表名]; 2. 恢复 truncate table org_group; insert into o ...
- mocha.js
mocha 如果你听说过“测试驱动开发”(TDD:Test-Driven Development),单元测试就不陌生. 单元测试是用来对一个模块.一个函数或者一个类来进行正确性检验的测试工作. 比如对 ...
- PHP7.1以上版本 count()报错
报错信息如下: count(): Parameter must be an array or an object that implements Countable (View: D:\fookusy ...
- node快速起web服务器
首选,安装http-server模块 npm install http-server -g 在需要打开的静态页面的目录下,开启服务即可 http-server
- 每天一个Linux命令:rm(5)
rm rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉.对于链接文件,只是删除整个链接文件,而原有文件保持不变 注意:使用rm命令要格外小心.因为 ...
- Linux安装系统
服务器与PC 服务器本质上也是以太计算机,相比较家用电脑而言区别如下: 1.服务器更加稳定 2.通常性能比家用机更高 运维工程师的核心职责 保证服务器不间断运行 提升访问效率 保证数据安全 要完成上面 ...
- C# ArrayList、HashSet、HashTable、List、Dictionary的区别
在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求. 由于这种限制不方便,所以出现了ArrayList. ArrayList.List<T> ArrayList是可变长数组,你 ...