youli3 发表于 2013-12-17 09:52:08

IIS8托管WCF服务

WCF服务程序本身不能运行,需要通过其他的宿主程序进行托管才能调用WCF服务功能,常见的宿主程序有IIS,WAS,Windows服务,当然在学习WCF技术的时候一般使用控制台应用程序或WinForm程序进行托管。本文将详细介绍如何使用IIS8托管WCF服务程序以及解决可能会碰到的一些问题。步骤比较多,还需耐心看完!一、安装IIS8
1.本机器是Win8操作系统,默认没有安装IIS。安装IIS8很简单,具体步骤是:控制面板→程序和功能→启用或关闭Windows功能,勾选Internet信息服务节点下的部分功能,如图所示:2.安装完毕,重启系统后,在浏览器中输入 http://localhost/,即可看见IIS8界面,表示安装成功,如图:3.启用WCF服务中的HTTP激活功能,具体步骤是:控制面板→程序和功能→启用或关闭Windows功能,勾选“.Net Framework 4.5 高级服务”节点下的部分功能,如图所示:
二、编写WCF服务应用程序
1.新建解决方案“IISHostWCF”,添加“WCF服务类库”项目,命名为“WCFService”,如图该WCF服务的功能很简单,根据参数Id获取相应的价格,代码如下:1)服务接口代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.ServiceModel;
namespace WCFService{        public interface IGetPrice    {            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”,如图1)把新生成的IService.cs和Service.cs文件删除2)添加在第一个步骤里新建的WCF服务类库,WCFService.dll3).修改Service.svc文件4)使用“WCF服务配置编辑器”编辑web.config文件web.config代码如下:http://images.iyunv.com/OutliningIndicators/ContractedBlock.gif View Code
5)发布“WCF服务网站”三、使用IIS托管WCF服务
1.打开IIS管理器,添加网站,如图2.添加完网站后,右键菜单→管理网站→浏览,弹出页面,选择浏览“Service.svc”文件,打开后,发现会报错:经过查找资料,原来是IIS8默认没有添加处理svc文件的处理程序,需手动添加:1)添加MIME类型文件扩展名:.svc;MIME类型:application/octet-stream。2)添加处理程序映射请求路径: *.svc;类型:System.ServiceModel.Activation.HttpHandler;名称:svc-Integrated添加完毕后,重新启动网站,再次浏览即可成功:四、测试IIS托管的WCF服务
1.通过VS自带的WCF测试工具打开“VS2012开发人员命令提示”工具,输入“wcftestclient”,即可打开“WCF测试客户端”:添加WCF服务测试地址:http://localhost:8001/Service.svc/mex测试结果如下:2.新建控制台客户端来测试WCF服务,添加服务引用以下是简单的测试代码: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();      }    }}结果如下:
至此使用IIS托管WCF服务应用程序详细步骤完毕。好困啊~~~

8516830 发表于 2013-12-17 23:05:42

不要小看自己,霍金都能当天才,你有什么不行的

houbin 发表于 2013-12-18 00:26:21

※ 相爱就不要有分离°乀

yiwai 发表于 2013-12-18 02:39:22

花.飞彼岸花.只为找到心爱德人.用黑暗来祭奠悲伤德残泪.花开花落.

jgugugiug 发表于 2013-12-18 07:47:46

楼主,是你让我深深地理解了‘人外有人,天外有天’这句话。谢谢侬!

liukaida 发表于 2013-12-18 10:11:46

我试图温暖一颗心那冰冷旳回忆却始终是挥之不去

5ol.cc 发表于 2013-12-18 13:04:00

1次1次的失败,我开始了逃避*
页: [1]
查看完整版本: IIS8托管WCF服务