WCF创建WebService正确操作步骤详解

2010-02-26 09:33 佚名 CSDN 我要评论(0) 字号:T | T

我们在这里为大家介绍的WCF创建WebService的主要步骤包括有四个步骤,我们将会对这些具体的操作步骤进行详细的介绍。

AD:

其实,运用WCF对WEB进行相关的操作是一个比较简单的操作技术,我们可以通过这篇文章介绍的具体操作步骤来充分的掌握这一应用技巧。希望对此有需要的朋友们可以通过这里介绍的内容获得一些帮助。

  • WCF服务合同相关内容解读
  • WCF IIS宿主基本应用技巧分享
  • WCF自宿主管理进程声明周期
  • WCF端点配置具体管理办法
  • WCF服务宿主程序正确实现方法解析

例子:

WCF创建WebService第一步: 添加WCF名称域:

using System.ServiceModel;

using System.ServiceModel.Description;

ServiceModel 是.NET当中用来实现WCF服务功能的名称域。

WCF创建WebService第二步: 定义服务。

  1. [ServiceContract()]
  2. public interface IServiceInterface
  3. {
  4. [OperationContract]
  5. string sayHello( string text );
  6. }
  7. public class Service1 : IServiceInterface
  8. {
  9. public string sayHello(string text)
  10. {
  11. return "hello" + text;
  12. }
  13. }

一般来讲,将服务定义为接口,然后由它衍生出多中服务的类。这样做的一个好处是可以在接口级别定义属性,而在服务的类的级别看不到任何属性信息。只需要实现预先定义好的方法就可以。

WCF创建WebService第三步: 建立宿主,WCF的Service可以运行在程序,Windows 服务或者ASP.NET上面,我们使用Console来建立宿主:

  1. internal class MyServiceHost
  2. {
  3. internal static ServiceHost mySvcHost = null;
  4. internal static void StartService()
  5. {
  6. ……
  7. }
  8. internal static void StopService()
  9. {
  10. ……
  11. }
  12. }
  13. static void Main(string[] args)
  14. {
  15. MyServiceHost.StartService();
  16. Console.ReadLine();
  17. MyServiceHost.StopService();
  18. Console.Read();
  19. return;
  20. }

这里,我们定义了一个宿主 MyServiceHost,其中包含一个ServiceHost类的成员,ServiceHost类是ServiceModel当中用来创建通信对象的类。我们可以通过它来创建一个监听的对象,成为EndpointListener.

WCF创建WebService第四步:创建WCF运行时。

  1. internal static void StartService()
  2. {
  3. //首先,创建一个ServiceHost对象,传入的参数是Service对象的类型和服务的地址。
  4. Uri address = new Uri("http://localhost:8080/service1");
  5. mySvcHost = new ServiceHost( typeof(Service1),address );
  6. //在创建的ServiceHost对象当中查找,看是否存在ServiceMetadataBehaviour的元数据行为
  7. //描述,如果没有找到,创建一个新的ServiceMetadataBehaviour对象。
  8. ServiceMetadataBehavior behaviour = mySvcHost.Description. Behaviors.Find<ServiceMetadataBehavior>();
  9. if (behaviour == null)
  10. behaviour = new ServiceMetadataBehavior();
  11. //设置允许进行HttpGet操作。
  12. behaviour.HttpGetEnabled = true;
  13. //设置MetadataExporter导出Metadata时遵循WS-Policy 1.5规范。
  14. behaviour.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
  15. //将创建好的behaviour加入到宿主实例的行为描述组当中。
  16. mySvcHost.Description.Behaviors.Add(behaviour);
  17. //加入MetadataExchange endpoint.
  18. mySvcHost.AddServiceEndpoint(
  19. ServiceMetadataBehavior.MexContractName,
  20. MetadataExchangeBindings.CreateMexHttpBinding(),
  21. "mex"
  22. );
  23. //加入应用程序 endpoint
  24. WSHttpBinding binding = new WSHttpBinding();
  25. mySvcHost.AddServiceEndpoint(typeof(IServiceInterface),  binding, address);
  26. //打开 ServiceHost 实例。
  27. mySvcHost.Open();
  28. }

以上就是我们为大家介绍的WCF创建WebService所有操作步骤。

WCF创建WebService正确操作步骤详解相关推荐

  1. vsftp建立虚拟用户不同目录分配不同权限操作步骤详解

    这篇文章主要介绍了vsftp建立虚拟用户不同目录分配不同权限操作步骤详解,大家参考设置自己的FTP服务器吧vsftpd服务器同时支持匿名用户.本地用户和虚拟用户三类用户账号,使用虚拟用户账号可以提供集 ...

  2. 通过串口来控制网管型交换机的操作步骤详解

    之前我们对网管型交换机的三种管理方式简单的给大家介绍了一下,一.通过串口管理:二.通过web管理:三.通过网管软件管理.今天,飞畅科技的小编来为大家详细介绍下通过串口终端配置是如何对网管交换机进行控制 ...

  3. eslint php,ESlint操作步骤详解

    这次给大家带来ESlint操作步骤详解,ESlint操作的注意事项有哪些,下面就是实战案例,一起来看一下. vue-cli脚手架创建的项目默认使用ESlint规则,启动项目的时候因为各种语法报错,不得 ...

  4. hp打印机没有右键扫描_安装HP打印机报错 0x000006be解决方法,图文操作步骤详解...

    安装HP打印机报错 0x000006be解决方法,图文操作步骤详解 1. 首先打开控制面板 2.在程序和功能窗口中找是否有HP的打印机驱动,卸载掉 3.打开C:WindowsSystem32spool ...

  5. 主管护师计算机考试如何舞弊,人机对话操作步骤详解,2020主管护师考生必看!...

    原标题:人机对话操作步骤详解,2020主管护师考生必看! 距离2020年卫生资格考试不到100天了. 2020年度卫生资格考试除初级护师外采用人机对话的方式进行.很多考生第一次接触人机对话考试形式,那 ...

  6. oracle表稅片整理,oracle_Oracle表碎片整理操作步骤详解,高水位线(HWL)下的许多数据 - phpStudy...

    Oracle表碎片整理操作步骤详解 高水位线(HWL)下的许多数据块都是无数据的,但全表扫描的时候要扫描到高水位线的数据块,也就是说oracle要做许多的无用功!因此oracle提供了shrink s ...

  7. 方正信创笔记本U盘系统重装的操作步骤详解

    方正信创笔记本U盘系统重装的操作步骤详解分享.使用方正信创笔记本的时候遇到系统故障问题应该怎么自己去进行处理了.无论是电脑系统蓝屏.黑屏.还是出现错误代码,这些情况都是可以通过U盘重装系统来解决的,接 ...

  8. 电脑录屏怎么操作,操作步骤详解,2023新版

    在日常的学习.生活和工作中,当小伙伴想要分享一段游戏视频或者教学视频时,电脑录屏就显得尤为重要了.但是小伙伴你是否知道电脑录屏怎么操作?今天小编就分享电脑录屏操作步骤的详细教程,一起来看看吧. 电脑录 ...

  9. 图片怎么合成gif动图?操作步骤详解

    图片怎么合成gif动图?gif动图的使用非常的广泛,平时我们聊天中见到的动态表情,已经逛某宝时看到的动态广告图,其实都是gif动图.小编作为一名互联网从业者,经常需要使用或者制作gif动态图片.不知道 ...

最新文章

  1. 【职业规划和代码库设计】
  2. ES6之Promise
  3. 偏最小二乘法回归(Partial Least Squares Regression)
  4. CentOS7中使用PM2设置Node-RED开机自启动
  5. plsql窗口文件怎么找回_电脑文件丢失怎么找回?知道原因和方法很关键
  6. Spring Data对Cassandra 3的支持
  7. Ubuntu使用谷歌浏览器登录账号时崩溃
  8. linux下播放wma格式,Ubuntu 20.04中使Rhythmbox支持WMA格式文件播放
  9. 圣地牙哥『华南理工大学南加州校友会』理事会全体理事及部份校友聚会纪实...
  10. 在Windows上删除所有的Oracle安装 和电脑名改变后的设置...
  11. Android 日志自动分析,Android 自动化测试(monkeytest)异常日志分析
  12. 【Java】随机姓名的生成
  13. 关于LANP的相关常识题
  14. 30行JS代码带你手写自动回复语音聊天机器人
  15. sklearn.metrics confusion_matrix注意事项
  16. Jenkins构建ant项目
  17. 主机远程登录报ssh_exchange_identification: read: Connection reset by peer
  18. android 模拟器目录,Android 获取APP 文件目录 模拟器检测
  19. 使用Flutter实现仿微信录音的插件
  20. Redis实现的布隆过滤器如何快速有效删除数据

热门文章

  1. Redis中的批量删除数据库中的Key
  2. python 安装中的错误解决
  3. Access is denied
  4. cacti无密码登录
  5. spring和redis的整合-超越昨天的自己系列(7)
  6. Android搜索手机文件
  7. 把庞大的 npm script 拆到单独文件中
  8. Linux定时备份Oracle Database 翻译
  9. 【踩坑记录】Tensorflow在Windows下使用
  10. 通用职责分配软件原则之6-多态原则