创建一个控制台应用程序,命名为wcftest,并在同一解决方案中添加一个wcf服务应用程序

在wcf项目中会自动生成Service1.svc服务程序文件和IService1.cs契约接口

IService1.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text; namespace WcfService1
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
// TODO: 在此添加您的服务操作
} }

服务类必须要添加[ServiceContract]特性,方法要添加[OperationContract]特性,这样才能被客户端调用,wcf服务需要这几个特性来制定服务契约,规定wcf消息交换模式和消息的格式等

Service1.svc

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text; namespace WcfService1
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“Service1”。
// 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 Service1.svc 或 Service1.svc.cs,然后开始调试。
public class Service1 : IService1
{
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
}
}

测试用,所以我只保留了GetData方法

现在服务和项目在同一解决方案中,可以直接引用服务,添加服务引用,点击发现,就能看到创建的wcf

添加服务(服务修改后要重新生成一下,不然可能会报错)

调用服务

客户端wcftest中的程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace wcftest
{
class Program
{
static void Main(string[] args)
{
ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
Console.WriteLine(client.GetData());
Console.ReadKey();
}
}
}

程序输出结果

结果出来了,证明wcf是可以用的,现在把wcf部署到iis上

打开iis,创建一个应用程序池,取名wcfpool

然后添加一个空网站,程序池选择刚刚建立的wcfpool,用户名为wcfservice,物理地址指向一个空文件夹

因为在本机上,所以主机位localhost,也可以填上本机的ip地址

在随便找个路径创建一个WcfTest的文件夹,在文件夹中放入刚才创建的wcf应用程序的Service1.svc服务程序文件和IService1.cs契约文件还有web.config配置文件

在WcfTest中再创建一个bin文件夹,放入刚才创建的wcf应用程序的bin目录下的WcfService1.dll文件

在iis中的wcfservice网站上创建一个应用,名称为wcftest,物理路径为刚创建的WcfTest文件夹

然后可以在iis中看到生成了相应的应用程序,右键浏览Service1.svc

如果在浏览器中出现如下结果

说明wcf已经成功部署到iis了,再看一下浏览器的地址栏,是不是跟我们配置的网站的路径一样,主机localhost 应用wcftet下的Service1.svc

如果主机名输入域名,再输入本机ip,则可以通过域名www.xxxx.com的方式访问

在内网的话也可以用本机的内网ip ,地址将会是http://xxx.xxx.xxx.xxx/wcftest/Service1.svc

现在算是把wcf部署到服务器端了,然后就是创建一个客户端访问试一下,同样创建一个控制台程序,然后添加服务引用,地址填上刚才的浏览器地址

能找到wcf,然后再试用一下,依然可以成功调用

总结:初步了解wcf,依然有很多不明白的,比如说wcf的契约,绑定,消息,安全,元数据等

  

wcf简单的创建和运用的更多相关文章

  1. WCF入门, 到创建一个简单的WCF应用程序

    什么是WCF?  WCF, 英文全称(windows Communication Foundation) , 即为windows通讯平台. windows想到这里大家都知道了 , WCF也正是由微软公 ...

  2. WCF简单教程

    WCF是DotNet体系中很重要的一项技术,但是组内很多组员通过书籍自学的时候 感觉涉及面太广.配置文件太复杂,新名词太多.抓不到头绪,有感于此,决定进行一次组内技术培训,顺便把培训讲义整理到blog ...

  3. MVC CodeFirst简单的创建数据库(非常详细的步骤)

       最近在学习MVC的开发,相信有过开发经验的人初学一个新的框架时候的想法跟我一样最关心的就是这个框架如何架构,每个架构如何分工,以及最最关键的就是如何与数据库通信,再下来才是学习基础的页面设计啊等 ...

  4. WCF服务的创建和发布到IIS

    一. WCF服务的创建 有两种创建方式: 1.WCF服务库 2.WCF服务应用程序 如下图所示: 这里选择WCF服务库.注意事项: 1.WCF服务库是一个类库项目,这里选择.net 3.5版本(版本高 ...

  5. 使用WCF Data Service 创建OData服务

    使用WCF Data Service 创建OData服务 在 上一章 中,介绍了如何通过 OData 协议来访问 OData 服务提供的资源.下面来介绍如何创建一个 OData 服务.在这篇文章中,主 ...

  6. .net WCF简单练习

    之前一直没接触过WCF这个东西,由于是初学WCF没有深入研究其原理,只是写了一个demo WCF服务用于两个不同项目中的调用,在这里我举例项目A调用WCF服务实现查询数据功能. 第一步:创建数据库,有 ...

  7. [.NET] 使用VALIDATIONCONTEXT快速进行模型资料的验证 》简单xml创建-json转xml

    [.NET] 使用VALIDATIONCONTEXT快速进行模型资料的验证 在进行WebAPI功能开发的时候,一般传统的验证资料是否合法的方式,都是透过if/else的方式进行判断若是使用Valida ...

  8. 【转】WCF服务的创建和发布到IIS

    一. WCF服务的创建 有两种创建方式: 1.WCF服务库 2.WCF服务应用程序 如下图所示: 这里选择WCF服务库.注意事项: 1.WCF服务库是一个类库项目,这里选择.net 3.5版本(版本高 ...

  9. WCF简单使用(分别部署在控制台和IIS上)

    WCF部署到控制台 1.下面通过一个简单的服务示例来认识WCF1.新建项目,名称IBLL,解决方案名称WcfDemo,模板选择类库2.修改Class1.cs文件名称为 IUserInfoService ...

随机推荐

  1. Java Web的数据库操作(一)

    一.JDBC技术 1.JDBC简介 JDBC是Java程序与数据库系统通信的标准API,它定义在JDK的API中,通过JDBC技术,Java程序可以非常方便地与各种数据库交互,JDBC在Java程序与 ...

  2. Qt 之容器内的控件全屏

    m_label = new QLabel(); ui->stackedWidget->addWidget(m_label); ui->stackedWidget->setCur ...

  3. Java为什么使用连接池

    一.简介 动态Web站点往往用数据库存储的信息生成Web页面,每一个页面请求导致一次数据库访问.连接数据库不仅要开销一定的通信和内存资源,还必须完成用户验证.安全上下文配置这类任务,因为往往成为最为耗 ...

  4. 【VS2015正式版下载】Visual Studio 2015 正式版开放下载 Visual Studio 2015 神key

    说明: 微软定于2015年7月20日发布Visual Studio 2015正式版,目前其官方网站已经提供正式版本的下载. 可在https://www.visualstudio.com/en-us/d ...

  5. Android推送等耗电原因剖析

    原文链接:http://www.jianshu.com/p/584707554ed7 Android手机有两个处理器,一个是Application Processor(AP)基于ARM处理器,主要运行 ...

  6. <httpProtocol/>配置http协议头

    Web.Config中的位置 <configuration> <system.webServer> <httpProtocol> <!--http协议内容-- ...

  7. NodeJs获取不到POST参数

    NodeJs报错,从网页端获取不到POST参数,提示错误类似如下 TypeError: Cannot read property 'username' of undefined     at C:\U ...

  8. ORACLE基本SQL语句-用户及建表篇

    一.用户相关SQL语句 /*新建用户*/create user ; 说明:SA用户名,2013密码 /*授权connect,resource给用户sa*/grant connect,resource ...

  9. ecstore实现图片分离(静态资源分离)配置文件

    转载http://bbs.ec-os.net/read.php?tid=854 图片分离涉及到三个config设置#define('APP_STATICS_HOST', 'http://192.168 ...

  10. Jasper_crosstab_group _Error incrementing crosstab dataset

    error detail: net.sf.jasperreports.engine.JRException: net.sf.jasperreports.engine.JRRuntimeExceptio ...