WCF创建WebService正确操作步骤详解
创始人
2024-06-23 18:51:26
0

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

例子:

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. }  

 

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

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;  

 

 

这里,我们定义了一个宿主 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();  
  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();  

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

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...