如何建立一个WCF服务并将其发布到IIS上
在我们的软件开发中,经常会连接到数据库中,如果是常规的操作,我们经常会将连接数据库的字符串写在配置文件中,然后去读取数据库的连接字符串,其实这种方式是非常不科学的,这会直接暴露我们的数据库,直接暴露我们的用户名和密码,这将为系统的安全性提供了很大的不确定性,特别是在一些金融公司里,这些数据库都是绝密的,对外暴露这些也是非常不安全的行为和方式。
另外如果在一个项目组中,多人同时开发应用,并且有两个或者两个以上的人员同时访问同一个数据库,那么同样的数据库会建立多次重复的连接,写很多重复的代码,这种开发方式是非常不科学的,特别是在以Prism这种框架下同时开发多个应用时,使用WCF似乎是一个很不错的选择,那么究竟什么是WCF?如何建立WCF程序,并且将WCF发布到IIS上,从而通过IP和端口去访问这个WCF程序呢?
首先来回答第一个问题:什么是WCF?这里摘录了一些官方的一些简单解释:Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术。
一 如何建立一个WCF应用程序:
1 打开VS2012,选择WCF==>WCF服务库

2 点击确认以后,可以通过看到会生成下列代码。

我们可以看到默认生成了一个IService1的接口以及实现该接口的一个类Service1,这代表一个WCF程序,当然我们可以通过右键:添加==》新建项==》WCF程序来添加第二个WCF程序,这个程序也包含一个IService2的接口以及实现该接口的一个类Service2,当然这里怎么去具体写这个服务,这里就不再赘述,这里重点讲述怎么去配置以及发布WCF程序。
这里重点讲一下怎么去调试WCF程序,右键选择调试,然后启动新实例,会启动一个微软为我们提供的一个调试工具“WCF测试客户端”。

启动调试客户端后,我们可以首先在WCF程序中设置断点,然后选择某一个WCF程序的某个函数,然后在右侧1的位置上填入自己设定的参数值,然后再启动代理,进行相关的调试,这里简单介绍一下。
3 在整个WCF程序确定调试无误后,我们需要将当前的WCF程序进行发布,发布的方法是右键当前程序,单击“发布”然后将其发布到一个合适的物理位置,发布程序后,我们可以看看生成了些什么东西。

WCF程序默认是以svc作为后缀名称的,每一个svc文件代表一个WCF程序,还有一个WCF程序的关键信息的配置文件,Web.config文件,这里只是简单介绍一下,配置完成以后,我们就可以将该WCF部署到IIS上,然后通过访问网站的形式来安装部署到IIS上。
二 安装IIS
1 依次进入Windows7—》控制面板—》程序—》程序和功能,并选择“打开或关闭Windows功能”

此处非常重要,注意依次勾选 “Internet 信息服务”目录下面的“常见HTTP错误—》HTTP错误一定要勾选,否则出现错误时不能够提示错误,这个是非常严重的”。最后将万维网服务—》应用程序开发功能—》下面的所有选项全部都勾选上,其它的选项选择默认就可以了,一般在安全性下面选择—》请求筛选,常见HTTP功能下勾选—》Http错误—》静态内容—》默认文档—》目录浏览,性能功能下选中—》静态内容压缩,运行状况和诊断下选中—》HTTP日志—》请求监视器,然后就选择确定。
2 安装完IIS之后可以通过 计算机—》管理中查看安装的IIS。
三 将WCF程序部署到IIS上。
1 注册WCF组件。
WCF 4.0 一般默认安装.net Framework 4.0的时候已经安装,但如果先装.net framework 4.0,后装IIS,就会出现问题。需要重新注册WCF4.0,WCF4.0 已经是.net 4.0的一个内部组件,不需要.net3.5 那样麻烦先装windows组件。
如何看是否已经注册了WCF组件,选择:Default Web Site==》功能视图==》处理程序映射,然后再查看*.svc 后缀的文件是否被svc-Integrated-4.0 或 svc-ISAPI-4.0_64/32bit 程序处理:


如果没有被处理,则需要注册WCF组件,具体的方法是以管理员权限运行cmd 然后运行下面的命令 C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ ServiceModelReg.exe –i 以进行注册,并安装相应的组件,安装成功后会有相应的提示。
2 使用aspnet_regiis.exe注册IIS。
由于我们使用的.net framework4.0以上的框架开发的应用程序,但是系统只默认注册了.NET Framework v2.0.50727,如果不注册相应的IIS那么我们访问界面时会弹出以下的错误。

具体的方法是以管理员权限运行cmd 然后运行下面的命令 C:\Windows\Microsoft.NET\Framework\v4.0.30319\ aspnet_regiis.exe –i 以进行注册。注册成功会出现下面的提示。

3 为应用程序添加应用程序池(例如名称为:IGISPool)。
记住选择.NET Framework的版本为v4.0.30319 托管管道模式选择集成,然后选择确定,那么一个应用程序池就好了。

4 添加网站。


A 网站的名称可以自己去命名,此处网站的名称为IGIS。
B 应用程序池选择步骤3中建立的IGIS应用程序池(IGISPool)。
C 物理路径,选择到“发布服务”这一层,用户在布局的时候只需要将WCF服务(放在发布文件文件夹下面)放到本地的一个路径下面,然后选择到“发布服务”这一文件夹就可以了。
D 身份验证(当然该步骤可以省略)。
为了保证当前网站的安全,需要进行权限验证,点击“连接为”,并按照下面的步骤一次输入用户名、密码,然后选择确定。
确定完成后点击“测试设置”出现下图所示的界面时表示当前身份验证成功。


E 在完成D步骤后,分配IP,可以选择127.0.0.1作为只在本机运行的网站,也可以设置在局域网中的本机IP,这样别机器就能够通过这个地址来访问当前网站,也可以使用默认的全部未分配。
F 网站的端口号选择一个本机未被占用的端口号,这里选择8100作为端口号,默认值为80端口。
G 主机名称选填。
H 点击确定,这样一个网站就布置好了。
5 浏览当前网站。
5.1 选择左侧自己新建的网站IGIS。
5.2 切换到“内容视图”。

5.3 选择其中的任何一个svc文件,右键选择浏览。

5.4 如果浏览器出现下面的界面,则表明当前的网站可以正常访问。

5.5 本文档是在Window7 32位系统上面部署的文件,如果是在在64位操作系统中部署的该系统,那么还应该设置应用程序池的基本属性中配置相关属性“以允许32位程序集运行”。
如何建立一个WCF服务并将其发布到IIS上的更多相关文章
- WCF服务的创建和发布到IIS
一. WCF服务的创建 有两种创建方式: 1.WCF服务库 2.WCF服务应用程序 如下图所示: 这里选择WCF服务库.注意事项: 1.WCF服务库是一个类库项目,这里选择.net 3.5版本(版本高 ...
- 【转】WCF服务的创建和发布到IIS
一. WCF服务的创建 有两种创建方式: 1.WCF服务库 2.WCF服务应用程序 如下图所示: 这里选择WCF服务库.注意事项: 1.WCF服务库是一个类库项目,这里选择.net 3.5版本(版本高 ...
- WCF学习系列一_创建第一个WCF服务
原创作者:灰灰虫的家http://hi.baidu.com/grayworm WCF开发实战系列一:创建第一个WCF服务 在这个实战中我们将使用DataContract,ServiceContract ...
- WCF开发实战系列一:创建第一个WCF服务
WCF开发实战系列一:创建第一个WCF服务 (原创:灰灰虫的家http://hi.baidu.com/grayworm) 在这个实战中我们将使用DataContract,ServiceContract ...
- 20190710用控制台启动一个wcf服务
快速阅读 如何用控制台启动一个wcf服务,已经wcf的配置和在类库中如何实现 . wcf类库 用vs新建一个类库,引用system.ServiceModel 定义接口实现服务契约和操作契约 [Serv ...
- 1 学习wcf 编写简单的WCF服务流程 并发布在IIS上
学习笔记 学习大佬的博客 https://www.cnblogs.com/iamlilinfeng/archive/2012/09/25/2700049.html 写一遍加深印象 图片看不清楚的 可 ...
- WCF开发实战系列一:创建第一个WCF服务 转
转 http://www.cnblogs.com/poissonnotes/archive/2010/08/28/1811064.html 在这个实战中我们将使用DataContract,Servic ...
- 创建第一个WCF服务
创建WCF服务 1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序. 2.建立完成后如下图所示: 3.删除系统生成的两个文件IService1.cs与Service1.s ...
- jmeter 建立一个网络服务的测试计划
如何创建一个 测试计划 测试一个网络服务. 你会 创建5个用户发送请求到一页. 同时,你会告诉用户运行测试两次. 的总数 请求用户请求(5)x(1)x(重复2次)= 10 HTTP请求. 来 建立测试 ...
随机推荐
- linux 应用和发展
课程大纲 UNIX/Linux发展历史 自由软件 Linux应用领域 Linux学习方法 UNIX 发展历史 (1 )1965年,美国麻省理工学院(MIT). 通用电气公司(G ...
- day05 数据基本类型及内置方法:字符串str、列表list
一:可变不可变类型 1.可变类型 值改变,id不变,说明是直接改变原值,是可变类型 2.不可变类型 值改变,id也跟着改变,说明是产生了新的值,是不可变类型 二:数字类型 1.整型Int 用途: 记录 ...
- 编程从入门到放弃(Java)
1.Java入门篇 1.1 基础入门和面向对象 1.1.1 编程基础 [01] Java语言的基本认识 [02] 类和对象 [03] 类的结构和创建对象 [04] 包和访问权限修饰符 [05] 利 ...
- Linux 修改时间和时区为上海时区
发现centos7的时间是utc的,和上海时间不一样. 由于/usr/share/zoneinfo/Asia/ 这个目录下没有北京时区,就选择了上海时区,只要赋值过去就可以了 rm -f /etc/ ...
- vscode快捷键大全
一般Ctrl + Shift + P,F1显示命令调色板 Ctrl + P快速打开,转到文件...Ctrl + Shift + N新窗口/实例 Ctrl + Shift + W关闭窗口/实例 Ctrl ...
- Git安装以及常用命令(图文详解)
**Git安装以及常用命令** 1.下载安装Git,傻瓜式安装相信大家都会. 官网下载地址:[https://git-scm.com/downloads] 2.Git基本操作 (1)git --ver ...
- 史上最全的Spring Boot配置文件详解
Spring Boot在工作中是用到的越来越广泛了,简单方便,有了它,效率提高不知道多少倍.Spring Boot配置文件对Spring Boot来说就是入门和基础,经常会用到,所以写下做个总结以便日 ...
- 任务调度工具Quartz入门笔记
一,导包 1)官网下载:http://www.quartz-scheduler.org/downloads/ 2)Maven <dependency> <groupId>org ...
- Java面试MySQL的一些问题
MySQL InnoDB存储的文件结构 索引树是如何维护的? 数据库自增主键可能的问题
- Arduino通过L9110进行电机控制
L9110S是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,将分立电路集成在单片IC之中,使外围器件成本降低,整机可靠性提高. 该芯片有两个TTL/CMOS兼容电平的输入,具有良好的抗干 ...