创建WCF服务寄宿到IIS

一.WCF简介:

Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。

整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术。

由 .NET Framework 3.0 开始引入。

WCF的最终目标是通过进程或不同的系统、通过本地网络或是通过Internet收发客户和服务之间的消息。
WCF合并了Web服务、.net Remoting、消息队列和Enterprise Services的功能并集成在Visual Studio中。
WCF专门用于面向服务开发。

二.创建简单的WCF服务应用程序

1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序。建立完成后如下图所示:

生成的解决方案的项目里面有Service1.Svc,IService1.cs,Web.config三个文件。查看里面的代码:

 // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
    [ServiceContract]
    public interface IService1
    {

        [OperationContract]
        string GetData(int value);

        [OperationContract]
        CompositeType GetDataUsingDataContract(CompositeType composite);

        // TODO: 在此添加您的服务操作
    }

    // 使用下面示例中说明的数据约定将复合类型添加到服务操作。
    [DataContract]
    public class CompositeType
    {
        bool boolValue = true;
        string stringValue = "Hello ";

        [DataMember]
        public bool BoolValue
        {
            get { return boolValue; }
            set { boolValue = value; }
        }

        [DataMember]
        public string StringValue
        {
            get { return stringValue; }
            set { stringValue = value; }
        }
    }
public class Service1 : IService1
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }

        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {
            if (composite == null)
            {
                throw new ArgumentNullException("composite");
            }
            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }
    }

[ServiceContract],来说明接口是一个WCF的接口,如果不加的话,将不能被外部调用。
[OperationContract],来说明该方法是一个WCF接口的方法,不加的话同上。
[DataContract]一旦声明一个类型为DataContract,那么该类型就可以被序列化在服务端和客户端之间传送
[DataMember](数据成员)只有标记为DataMember,在交换数据时,才能进行传送。

将该项目的Service1.svc设为起始页面,F5运行调试。

双击GetData()方法,输入value=1 》invoke》You entered :1说明服务测试成功。

三.将WCF服务发布寄宿到IIS上

右键项目,发布为文件系统。

确定已经启用或关闭Windows功能里面安装了wcf服务和IIS

打开IIS,添加站点,启动。设置身份为Everyone可以访问。

打开浏览器,输入:10.0.0.217:20000进入到目录:

可以发现里面有User.svc的和Sercice1.svc的WCF服务接口,点击进入>

说明我们的WCF服务寄宿到IIS上面成功。

四.客户端调用WCF服务;

在解决方案下面新建控制台应用程序,右键引用添加服务引用,http://10.0.0.217:20000/Service1.svc?wsdl

命名空间可以进行修改.引用成功后发现多了两个命名空间命名的服务文件:ServiceReference1,ServiceReference2,这里是分别是Service1.svc,User.svc的服务引用。

 class Program
    {
        static void Main(string[] args)
        {
            WcfTest.Demo1.ServiceReference1.Service1Client c = new ServiceReference1.Service1Client();
            Console.WriteLine(c.GetData(1));

            WcfTest.Demo1.ServiceReference2.UserClient u = new ServiceReference2.UserClient();
            Console.WriteLine(u.InsertUser("张三"));
        }
    }

这样就创建了一个简单WCF服务应用程序,寄宿到了IIS进程上,通过服务引用进行服务的调用

使用如下:

时间: 2024-11-28 23:16:21

创建WCF服务寄宿到IIS的相关文章

创建WCF服务自我寄宿

WCF服务的寄宿方式 WCF寄宿方式是一种非常灵活的操作,可以寄宿在各种进程之中,常见的寄宿有: IIS服务.Windows服务.Winform程序.控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者方便.高效提供服务调用. 签名 前面介绍过了WCF常用的一种寄宿方式,IIS服务寄宿.这种寄宿方式是最为方便的方式,而且由于服务只需要IIS运行就能自动运行起来,因此广为使用. 创建这种方式IIS寄宿方式的,只需要在解决方案里面,添加WCF服务应用程序,就可以生成这种的服务模块了. 将WCF服

WCF技术剖析之四:基于IIS的WCF服务寄宿(Hosting)实现揭秘

原文:WCF技术剖析之四:基于IIS的WCF服务寄宿(Hosting)实现揭秘 通过<再谈IIS与ASP.NET管道>的介绍,相信读者已经对IIS和ASP.NET的请求处理管道有了一个大致的了解,在此基础上去理解基于IIS服务寄宿的实现机制就显得相对容易了.概括地说,基于IIS的服务寄宿依赖于两个重要的对象:System.ServiceModel.Activation.HttpModule和System. ServiceModel.Activation.HttpHandler. 一.通过Htt

快速创建WCF服务和svcutil.exe工具使用

先简单的创建WCF服务: 系统会自动加上IService1接口 和 Service1 实现类 分别在IService1 和Service1 加上2段代码. 1 [ServiceContract] 2 public interface IService1 3 { 4 [OperationContract] 5 string HelloWorld(); 6 7 [OperationContract] 8 string GetData(int value); 9 10 [OperationContra

WCF入门教程(二)从零做起-创建WCF服务

通过最基本的操作看到最简单的WCF如何实现的.这是VS的SDK默认创建的样本 1.创建WCF服务库 2.看其生成结构 1)IService1.cs(协议) 定义了协议,具体什么操作,操作的参数和返回值等信息 通过ServiceContract.OperationContract.DataContract.DataMember等属性参数,将服务.操作.数据结构定义清楚. 在这里我们还清晰看到,WCF服务传输数据类型不只是通用数据类型,而且还可以传输自定义的复杂类型.哪些字段要进行传输,都可以通过D

WCF入门(五)---创建WCF服务

使用Microsoft Visual Studio2012创建WCF服务,理解如下所有必要的编码,更好地创建WCF服务的概念,这里做一个简单的任务. 启动Visual Studio 2012. 单击新建项目,然后在Visual C#标签,选择WCF选项. WCF服务创建,执行如加法,减法,乘法和除法基本的算术运算.主要的代码是在两个不同的文件 - 一个接口和一个类. 一个WCF中包含一个或多个接口和实现类. using System; using System.Collections.Gener

WCF服务寄宿IIS与Windows服务

WCF是Windows平台下程序间通讯的应用程序框架.整合和 .net Remoting,WebService,Socket的机制,是用来开发windows平台上分布式开发的最佳选择.wcf程序的运行需要一个宿主ServiceHost,我们可以选用控制台应用程序,也可以选择IIS寄宿,还可以选择windows 服务寄宿.相较与控制台程序,IIS,和Windows服务比较稳定.而且大家不会时不时的去重启下IIS下的网站,或者windows服务. 在IIS下寄宿Wcf 我们新建一个类库项目 在项目下

WCF服务使用(IIS+Http)和(Winform宿主+Tcp)两种方式进行发布

1.写在前面 刚接触WCF不久,有很多地方知其然不知其所以然.当我在[创建服务->发布服务->使用服务]这一过程出现过许多问题.如客户端找不到服务引用:客户端只在本机环境中才能访问服务,移植到其他机器上就不能访问服务(权限问题)等问题.所以写下这篇文章把我使用http和tcp这两方式部署服务所出现的问题以及解决方案记录下来,方便自己下次查看,也可以当作初学WCF的一个入门小示例吧. 2.建立一个WCF服务 首先要编写一个WCF服务,我在这里提供一个通过名字查询年龄的服务,代码如下: 服务契约:

WCF服务发布到IIS中去(VS2013+win7系统)

第一个WCF程序 1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序.建立完成后如下图所示: 2.删除系统生成的两个文件IService1.cs与Service1.svc. 3.添加自定义的WCF[服务文件]User.svc,此时vs2010会自动生成WCF接口文件IUser.cs,我们在IUser中定义WCF方法ShowName,在User.svc.cs对该接口的方法进行实现. 代码如下: using System.ServiceModel; namespace

关于WCF引用方式之WCF服务寄宿控制台

1.创建解决方案WCFService 依次添加四个项目,如上图,Client和Hosting为控制台应用程序,Service和Service.Interface均为类库. 2.引用关系 Service.Interface:定义服务契约(Service Contract)接口,引用WCF核心库System.ServiceModel.dll; Service:定义服务的项目,由于需要实现具体的服务,而服务契约在Service.Interface中,所以要引用Service.Interface项目;