Step by Step 创建一个WCF Service
(一)创建WCF Service
(1)创建WCF Service类库
创建一个Class Library的项目:
删除掉默认的Class1.cs文件,然后添加一个WCF Service项目:
Visual Studio会自动帮助你生成两个文件:HelloService.cs 和 IHelloService.cs,另外还自动添加了System.ServiceModel引用,它是WCF的核心。
修改IHelloService.cs和HelloService.cs文件。
IHelloService.cs:
namespace HelloService {// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IHelloService" in both code and config file together. [ServiceContract]public interface IHelloService{[OperationContract]string GetMessage(string name);} }
HelloService.cs:
namespace HelloService {// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "HelloService" in both code and config file together.public class HelloService : IHelloService{public string GetMessage(string name){return "Hello " + name;}} }
(2)创建WCF的Host
添加一个新的ASP.NET Empty Web Application:
添加一个新Item WCF Service
删除HelloService.svc.cs和IHelloService.cs文件。
添加HelloService Class Library的项目引用:
修改HelloService.svc为:
<%@ ServiceHost Language="C#" Debug="true" Service="HelloService.HelloService" %>
Web.config:
<?xml version="1.0" encoding="utf-8" ?> <configuration><system.serviceModel><services><service name="HelloService.HelloService" behaviorConfiguration="metaBehavior"><endpoint address="HelloService" binding="basicHttpBinding" contract="HelloService.IHelloService"></endpoint><endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint><host><baseAddresses><add baseAddress="http://localhost:8080"/></baseAddresses></host></service></services><behaviors><serviceBehaviors><behavior name="metaBehavior"><serviceMetadata httpGetEnabled="true"/></behavior></serviceBehaviors></behaviors></system.serviceModel> </configuration>
其中,service name=”命名空间.类名”,behaviorConfiguration是用来关联下面behavior的定义的。
endpoint address中定义的是相对地址,与baseAddress结合起来为完整地址
endpoint contract=”命名空间.接口名”
两个endpoint,第一个binding是basicHttpBinding,用于HTTP协议;第二个endpoint用于交换metadata,binding为mexHttpBinding。
其中behavior的定义是用来允许交换metadata的。
Build解决方案,如果没有错误就进行到下一步,部署WCF Service到IIS
(二)部署WCF Service到IIS
(1)Publish HelloServiceIISHost项目
(2)部署到IIS
浏览HelloService.svc
(三)创建一个Windows Form来调用WCF Service
添加一个服务引用:
private void button1_Click(object sender, EventArgs e) { HelloService.HelloServiceClient client = new HelloService.HelloServiceClient(); label1.Text = client.GetMessage(textBox1.Text); }
运行代码,效果如下:
(四)总结
svc文件中,包含着服务指令,Service属性指明文件指向的是哪个服务
<%@ ServiceHost Language="C#" Debug="true" Service="HelloService.HelloService" %>
service的代码可以在
(1) XXX.svc.cs的文件中
(2) 一个独立的Assembly(如同本文)
(3) App_Code文件夹下
本文转自JF Zhu博客园博客,原文链接: http://www.cnblogs.com/jfzhu/p/4025448.html ,如需转载请自行联系原作者
Step by Step 创建一个WCF Service相关推荐
- C#创建一个Windows Service
Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Window ...
- 创建一个Windows Service应用程序
创建一个Windows Service应用程序 下载本文代码 见资源 正是由于.NET Framework的出现,才使你能够构建出在系统重新启动时自动运行的.无人参与的(unattended)应用程序 ...
- Step by Step 创建一个 Web Service
原创地址:http://www.cnblogs.com/jfzhu/p/4022139.html 转载请注明出处 (一)创建Web Service 创建第一个项目,类型选择ASP.NET Empty ...
- 如何在Kubernetes里创建一个Nginx service
Jerry之前的文章如何在Kubernetes里创建一个Nginx应用,已经使用kubectl命令行创建了Pod,但是在kubernetes中,Pod的IP地址会随着Pod的重启而变化,因此用Pod的 ...
- 如何在Kubernetes里创建一个Nginx service 1
Jerry之前的文章如何在Kubernetes里创建一个Nginx应用,已经使用kubectl命令行创建了Pod,但是在kubernetes中,Pod的IP地址会随着Pod的重启而变化,因此用Pod的 ...
- 如何创建一个Hidl Service?
1. 工具 创建工具脚本:hello_word1_0-hidl-gen.sh #!/bin/bash PACKAGE=android.hardware.hello_word@1.0 LOC=hard ...
- 创建第一个WCF程序
WCF的三大核心是ABC A代表Address-where(对象在哪里) B代表Binding-how(通过什么协议取得对象) C代表Contact(契约)-what(定义的对象是什么,如何操纵) 创 ...
- 如何使用svconfigeditor.exe编辑WCF Service配置文件-配置一个基本的Endpoint(一)
1.svcconfigeditor简介 WCF Service的难点之一就是其千变万化的配置.如果直接手工书写,很容易出错而且效率低下.Microsoft .Net SDK中专门有一个可视化编辑工具名 ...
- WCF Service 的创建,测试,发布与使用示例
WCF Service 的创建,测试,发布与使用示例 一, WCF Service 的创建: WCF Service Application 注: 为了在 IIS 或 WAS 中托管,则必须使用 WC ...
最新文章
- FPGA之道(75)静态时序分析(一)基本概念介绍
- Cooike的一些用法
- 2014年3月29日缅甸将举行人口普查
- spring cloud云服务架构 - particle云架构代码结构讲解
- arm集群服务器_百度云智峰会发布ARM私有云新品,加速企业在移动端上的数字化转型...
- 关于 SAP Spartacus feature library 里的 _index.scss 文件,和神奇的下划线省略行为
- 跳板机连接数据库_跳板数据科学职业生涯回顾
- 小学生都学Python了,你还不知道怎么开始
- Java默认值规则——各种数据类型的初试值是什么?
- java n*n矩阵求值及求逆矩阵
- Android开发笔记(一百五十五)利用GL10描绘点、线、面
- 你不可不会的几种移动零的方法
- tomcat 后台 getshell
- 不知道这十项Linux常识,就别说自己玩过Linux!
- MAC环境配置SDK
- 【Spark】Spark的机器学习算法库——Spark MLilb
- 设计模式之简单工厂模式、工厂模式和抽象工厂模式
- wallpaper 壁纸提取
- Flutter与RN
- TikTok跨境电商:TikTok代开英国小店、印尼小店,美国小黄车,广告账户
热门文章
- shell编写监控httpd服务80端口脚本.间隔3秒监控端口如果服务关闭自动重启
- ELK下elasticsearch 性能调优
- Ubuntu 16.04扩展swap分区(内存)
- Linux中如何删除一个大文件
- Excel VBA实现 通过文件名查找全路径
- linux命令地址,[命令] Linux IP 命令 IP(管理地址)
- 使用Json出现java.lang.NoClassDefFoundError解决方法
- ServerVersion 引发了“System.InvalidOperationException”类型的异常
- spring boot2 坑 - 解决cros跨域问题
- 80端口未被占用,无法启动wamp的解决方法(原创)