如何建立一个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请求. 来 建立测试 ...
随机推荐
- C#—ASP.NET:集成极光推送(Push API v3)
C#—ASP.NET:集成极光推送(Push API v3) 原文地址: https://blog.csdn.net/CXLLLK/article/details/86489994 1.极光推送官 ...
- [MicroPython]TPYBoardv102自动浇花系统
1.系统功能 监测土壤湿度.环境温度.光照强度 根据当前环境自动浇水,寒冷天气自动加热土壤 2.所需元器件 TPYBoard板子1块 光敏模块1块 DS18B20模块1块 土壤湿度检测模块1块 杜邦线 ...
- missing 1 required positional argument: 'on_delete'报错解决方案
最近在使用Python的Django框架开发web站点,通过models.py文件建表后,执行数据库迁移(命令行:mange.py makemigrations)时报错,下面是查看官方文档后找到的解决 ...
- MVC5 + EF6 完整教程 (转)
点击查看: MVC5 + EF6
- Postman的Tests标签测试
接口测试最重要的就是返回数据的检查,一个简单的接口,我们可以肉眼检查返回数据,但接口一旦多起来且复杂,每次的检查都会很费劲,此时我们就需要postman 的tests模块来代替 postman面板: ...
- 自定义实现moveable button
实现的效果图: 自定义MVButton,继承自UIButton. 属性声明如下: @property (nonatomic) CGPoint beginPoint; @property (nonato ...
- Spring Cloud Config 分布式配置中心【Finchley 版】
一. 介绍 1,为什么需要配置中心? 当服务部署的越来越多,规模越来越大,对应的机器数量也越来越庞大,靠人工来管理和维护服务的配置信息,变得困难,容易出错. 因此,需要一个能够动态注册和获取服务信息的 ...
- 八、xadmin自定义菜单栏顺序
xadmin默认是读取注册的app和所有注册到xadmin的mode来生成对应的菜单. nav_menu[app_key] = { 'title': app_title, 'menus': [mode ...
- iOS中的截屏(屏幕截屏及scrollView或tableView的全部截屏)
iOS中的截屏(屏幕截屏及scrollView或tableView的全部截屏) 2017.03.16 12:18* 字数 52 阅读 563评论 4喜欢 2 1. 截取屏幕尺寸大小的图片并保存至相册 ...
- pycharm异常问题之Unable to save settings: Failed to save settings. Please restart PyCharm
pycharm异常之Unable to save settings: Failed to save settings. Please restart PyCharm 今天一不小心将电脑关了,但是关机之 ...