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

本文详细介绍了使用WCF创建WebService的四步流程:添加名称域、定义服务、建立宿主及创建WCF运行时。通过具体示例代码,帮助读者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

AD:2013云计算架构师峰会课程资料下载

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

例子:

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
    <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();  

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值