设为首页 收藏本站
查看: 1447|回复: 6

[经验分享] IIS8托管WCF服务

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-12-17 09:52:08 | 显示全部楼层 |阅读模式

WCF服务程序本身不能运行,需要通过其他的宿主程序进行托管才能调用WCF服务功能,常见的宿主程序有IIS,WAS,Windows服务,当然在学习WCF技术的时候一般使用控制台应用程序或WinForm程序进行托管。本文将详细介绍如何使用IIS8托管WCF服务程序以及解决可能会碰到的一些问题。步骤比较多,还需耐心看完!

一、安装IIS8

1.本机器是Win8操作系统,默认没有安装IIS。安装IIS8很简单,具体步骤是:控制面板→程序和功能→启用或关闭Windows功能,勾选Internet信息服务节点下的部分功能,

如图所示:

16224221-15b2e75a12da4664ae01141bf3677032.jpg

2.安装完毕,重启系统后,在浏览器中输入 http://localhost/,即可看见IIS8界面,表示安装成功,如图:

16224814-89924b31bbf8407ebaa73f08215c3dd2.jpg

3.启用WCF服务中的HTTP激活功能,具体步骤是:控制面板→程序和功能→启用或关闭Windows功能,勾选“.Net Framework 4.5 高级服务”节点下的部分功能,

如图所示:

16224459-e8cce06065354fc3ad152adff145bd3e.jpg


二、编写WCF服务应用程序

1.新建解决方案“IISHostWCF”,添加“WCF服务类库”项目,命名为“WCFService”,如图

16225430-dcd44ae7da48404ba95325420fc8a469.jpg

该WCF服务的功能很简单,根据参数Id获取相应的价格,代码如下:

1)服务接口代码

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.ServiceModel;
namespace WCFService{    [ServiceContract]    public interface IGetPrice    {        [OperationContract]        string GetPriceByProductId(int id);    }}

2)实现接口的服务类代码

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;
namespace WCFService{    public class GetPrice : IGetPrice    {        public string GetPriceByProductId(int id)        {            string price = "0.00";            switch (id)            {                case 1:                    price = "12.34";                    break;                case 2:                    price = "45.60";                    break;                case 3:                    price = "78.99";                    break;                default:                    price = "100.00";                    break;            }            return price;        }    }}

2.在解决方案中,添加→新建网站,选择“WCF服务”,命名为“WCFWebSite”,如图

16230844-9cbc24f93ded46638eaafe5f5f45a54e.jpg

1)把新生成的IService.cs和Service.cs文件删除

2)添加在第一个步骤里新建的WCF服务类库,WCFService.dll

16231139-781198edc3014108b4c0d7de1eb8fcf9.jpg

3).修改Service.svc文件

16231402-2c096935d4cf440d85177888ae1270c5.jpg

4)使用“WCF服务配置编辑器”编辑web.config文件

16231544-e1d532f10f174022984b049908203068.jpg

16231620-8b90df0b101744d9bca707b92fb01899.jpg

web.config代码如下:

View Code

5)发布“WCF服务网站”

16231958-a26ab26adb1140d7996b7740972d53b3.jpg

16233312-0350c52626e9491f93568c9663e5c109.jpg

16233324-b3eb79aeaf5345688471de466e5b8c57.jpg

16233334-2f962e2498244bceb76ba1945a45ef23.jpg

16233347-33971441dfaf419bb83fc33be1b797e6.jpg

三、使用IIS托管WCF服务

1.打开IIS管理器,添加网站,如图

16233735-f6cbd73892344d91965e0bd4ac49f0d8.jpg

2.添加完网站后,右键菜单→管理网站→浏览,弹出页面,选择浏览“Service.svc”文件, 16234059-e5c81b5fc1da4677a901892b4290838b.jpg

打开后,发现会报错:

16234131-8a8a1740a0cb4dd2bd178dfd59b98cd9.jpg

经过查找资料,原来是IIS8默认没有添加处理svc文件的处理程序,需手动添加:

1)添加MIME类型

文件扩展名:.svc;MIME类型:application/octet-stream。

16234442-c95cb3a2bb00464b89344097c242203b.jpg

16234458-2dd56b80aad04248b45bdb37b560e5f5.jpg

2)添加处理程序映射

请求路径: *.svc;

类型:System.ServiceModel.Activation.HttpHandler;

名称:svc-Integrated

16234700-db60ac34430b4d00bb18237f26a4180a.jpg

16234717-03ba9791749445c885d483adfecedfdc.jpg

添加完毕后,重新启动网站,再次浏览即可成功:

16234812-4e59a727465b40878327676cf137532f.jpg

四、测试IIS托管的WCF服务

1.通过VS自带的WCF测试工具

打开“VS2012开发人员命令提示”工具,输入“wcftestclient”,即可打开“WCF测试客户端”:

16235133-5da7b673dc6841ce9f4f6741c78642dc.jpg

16235140-eb9db8683f4546f5a3085a5aeead9d9c.jpg

添加WCF服务测试地址:http://localhost:8001/Service.svc/mex

16235314-7c9de5ed95cd4fd585b0c077b0d49c19.jpg

测试结果如下:

16235533-bd6d755c39994679b61f43aaee22c820.jpg

2.新建控制台客户端来测试WCF服务,添加服务引用

16235810-bc79a31ad09c4082b83a493cdb7200ac.jpg

以下是简单的测试代码:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;
namespace WCFClient{    class Program    {        static void Main(string[] args)        {            WCFGetPrice.GetPriceClient proxy = new WCFGetPrice.GetPriceClient("basicEndPoint");            Console.WriteLine(proxy.GetPriceByProductId(3));            Console.ReadKey();        }    }}

结果如下:

17000021-cac75720e56a4f37a4f99a19e35c0f3c.jpg


至此使用IIS托管WCF服务应用程序详细步骤完毕。

好困啊~~~



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-11728-1-1.html 上篇帖子: IIS发布WebService的一些常见问题 下篇帖子: iis添加新的文件类型支持MIME

尚未签到

发表于 2013-12-17 23:05:42 | 显示全部楼层
不要小看自己,霍金都能当天才,你有什么不行的

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-18 00:26:21 | 显示全部楼层
※ 相爱就不要有分离°乀

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-18 02:39:22 | 显示全部楼层
花.飞彼岸花.只为找到心爱德人.用黑暗来祭奠悲伤德残泪.花开花落.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-18 07:47:46 | 显示全部楼层
楼主,是你让我深深地理解了‘人外有人,天外有天’这句话。谢谢侬!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-18 10:11:46 | 显示全部楼层
我试图温暖一颗心那冰冷旳回忆却始终是挥之不去

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-18 13:04:00 | 显示全部楼层
1次1次的失败,我开始了逃避*

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表