参考文章:http://blog.csdn.net/findsafety/article/details/9045721
http://blog.163.com/wger_163_dh/blog/static/142646155201151394642791/
第一步:检查Windows7中IIS是否安装了必要的组件
方法:控制面板->程序和功能->打开或关闭Windows功能
以下图片中标注的功能Windows7默认不会安装的
第二步:检查IIS的配置
系统必备安装完成后打开IIS服务管理器,点默认网站,双击“处理程序映射”如下图
检查一下下图中红色标注部分是否已经存在,否则WCF服务是无法调用的。不幸如果没有找到这几个"兄弟"的话方法如下
安装注册WCF组件
1、运行cmd命令行工具。(开始 ==> 运行 ==> cmd回车)
(注意!!如果使用Windows Vista或7的话,务必使用administrator管理员身份运行,否则可能导致下面的操作无法继续!)
2、进入WCF文件夹:
cd C:WINDOWSMicrosoft.NETFrameworkv3
.0Windows Communication Foundation
3、运行ServiceModelReg.exe工具,会得到如下帮助信息:
=================
C:Documents and SettingsAdministrator>cd c:WINDOWSMicrosoft.NETFrameworkv3
.0Windows Communication Foundation
C:WINDOWSMicrosoft.NETFrameworkv3.0Windows Communication Foundation>Service
ModelReg
Microsoft(R) Windows Communication Foundation 安装实用程序
[Microsoft (R) Windows (R) Communication Foundation, 版本 3.0.4506.2152]
版权所有 (c) Microsoft Corporation。保留所有权利。
管理一台计算机上的 Windows Communication Foundation
的安装和卸载的管理实用程序
用法:
ServiceModelReg.exe [-i[r | ru] | -u | -ua | -r | -s:<path> | -sn:<path>
| -k:<path> | -kn:<path> | -lv | -lk | -vi] [-y] [-x] [-q | -v] [-nologo]
[-?]
-i - 安装此版本的 Windows Communication Foundation,并更新
IIS 元数据库根处的脚本映射和根以下的所有脚本映射。
现有的较低版本的脚本映射会升级至此版本。
-ir - 安装此版本的 Windows Communication Foundation,
仅注册。不要在 IIS 中安装 Windows Communication Foundation
脚本映射。
-iru - 安装此版本的 Windows Communication Foundation。如果
存在使用 Windows Communication Foundation 的任何现有
应用程序,不要在 IIS 中更新它们的脚本映射。
-u - 卸载此版本的 Windows Communication Foundation。
将此版本现有脚本映射会重新映射到计算机上剩余的
已安装的最高版本的 Windows Communication Foundation。
-ua - 卸载计算机上所有版本的 Windows Communication Foundation。
-r - 重新安装此版本的 Windows Communication Foundation,
并更新 IIS 元数据库根处的脚本映射和根以下的所有
脚本映射。无论原始版本是什么,都将现有的脚本映射
升级到此版本。
-x - 包含作为该安装操作一部分的 Windows Communication
Foundation 自定义操作脚本。
-s:<path> - 在指定的路径以非递归方式安装此版本
的 Windows Communication Foundation。
例如,ServiceModelReg.exe -s:W3SVC/1/ROOT/SampleApp1
-sn:<path> - 在指定的路径以非递归方式安装
此版本的 Windows Communication Foundation。
-k:<path> - 从指定的路径中以递归方式删除所有版本的 Windows
Communication Foundation 的所有脚本映射。
例如,ServiceModelReg.exe -k:W3SVC/1/ROOT/SampleApp1
-kn:<path> - 从指定的路径中以非递归方式删除 Windows Communication
Foundation 的所有版本的所有脚本映射。
-lv - 列出在该计算机上安装的所有版本的 Windows Communication
Foundation,以及状态和安装路径。
-lk - 列出对 Windows Communication Foundation 进行脚本映射
的位置的所有 IIS 元数据库密钥,以及该版本。将不会
显示从父密钥继承 Windows Communication Foundation
脚本映射的密钥。
-vi - 确认目标组件的安装并生成报告。组件可以处于下列状态:
未知、未安装、已进行默认安装或已进行自定义安装。
-y - 在卸载或重新安装组件之前不要求确认。
-q - 安静模式(减少输出信息)。
-v - 详细模式。
-nologo - 取消版权和标题消息。
-? - 打印此帮助文本。
=================
4、注册WCF组件,执行:ServiceModelReg.exe -i 回车
如果出现下面的信息,说明注册成功了:
=================
C:WINDOWSMicrosoft.NETFrameworkv3.0Windows Communication Foundation>Service
ModelReg -i
Microsoft(R) Windows Communication Foundation 安装实用程序
[Microsoft (R) Windows (R) Communication Foundation, 版本 3.0.4506.2152]
版权所有 (c) Microsoft Corporation。保留所有权利。
正在安装: Machine.config 节组和处理程序
正在安装: System.Web 生成提供程序
正在安装: System.Web 编译程序集
正在安装: HTTP 处理程序
正在安装: HTTP 模块
正在安装: Web 主机脚本映射
安装完成后打开IIS
-----------------------------------------------------------
安装好上述处理映射程序后:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
原因:
vs2010默认的是4.0框架,4.0的框架是独立的CLR,和2.0的不同,如果想运行4.0的网站,需要用aspnet_regiis注册4.0框架,然后用4.0的Class池,就可以运行4.0的web项目了.
如何用aspnet_regiis注册4.0框架 :
方法如下,启动cmd (win键+R 启动cmd) ,找到 4.0所在的目录,本人机器目录是 ;
注意:要以管理员的身份运行DOS窗口。
复制上面的目录 C:WindowsMicrosoft.NETFrameworkv4.0.30319
启动CMD进入上面的目录,如下图
已经进入 C:WindowsMicrosoft.NETFrameworkv4.0.30319 此目录
然后运行 aspnet_regiis.exe -i 如下图
稍等一会, aspnet_regiis 注册后如下图
ok,这时的IIS就可以运行 .net 4.0 部署的网站了.