其实,运用WCF对WEB进行相关的操作是一个比较简单的操作技术,我们可以通过这篇文章介绍的具体操作步骤来充分的掌握这一应用技巧。希望对此有需要的朋友们可以通过这里介绍的内容获得一些帮助。#t#
例子:
WCF创建WebService第一步: 添加WCF名称域:
using System.ServiceModel;
using System.ServiceModel.Description;
ServiceModel 是.NET当中用来实现WCF服务功能的名称域。
WCF创建WebService第二步: 定义服务。
- [ServiceContract()]
- public interface IServiceInterface
- {
- [OperationContract]
- string sayHello( string text );
- }
- public class Service1 : IServiceInterface
- {
- public string sayHello(string text)
- {
- return "hello" + text;
- }
- }
一般来讲,将服务定义为接口,然后由它衍生出多中服务的类。这样做的一个好处是可以在接口级别定义属性,而在服务的类的级别看不到任何属性信息。只需要实现预先定义好的方法就可以。
WCF创建WebService第三步: 建立宿主,WCF的Service可以运行在程序,Windows 服务或者ASP.NET上面,我们使用Console来建立宿主:
- internal class MyServiceHost
- {
- internal static ServiceHost mySvcHost = null;
- internal static void StartService()
- {
- ……
- }
- internal static void StopService()
- {
- ……
- }
- }
- static void Main(string[] args)
- {
- MyServiceHost.StartService();
- Console.ReadLine();
- MyServiceHost.StopService();
- Console.Read();
- return;
- }
这里,我们定义了一个宿主 MyServiceHost,其中包含一个ServiceHost类的成员,ServiceHost类是ServiceModel当中用来创建通信对象的类。我们可以通过它来创建一个监听的对象,成为EndpointListener.
WCF创建WebService第四步:创建WCF运行时。
- internal static void StartService()
- {
- //首先,创建一个ServiceHost对象,传入的参数是Service对象的类型和服务的地址。
- Uri address = new Uri("http://localhost:8080/service1");
- mySvcHost = new ServiceHost( typeof(Service1),address );
- //在创建的ServiceHost对象当中查找,看是否存在ServiceMetadataBehaviour的元数据行为
- //描述,如果没有找到,创建一个新的ServiceMetadataBehaviour对象。
- ServiceMetadataBehavior behaviour = mySvcHost.Description.
Behaviors.Find<ServiceMetadataBehavior>();- if (behaviour == null)
- behaviour = new ServiceMetadataBehavior();
- //设置允许进行HttpGet操作。
- behaviour.HttpGetEnabled = true;
- //设置MetadataExporter导出Metadata时遵循WS-Policy 1.5规范。
- behaviour.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
- //将创建好的behaviour加入到宿主实例的行为描述组当中。
- mySvcHost.Description.Behaviors.Add(behaviour);
- //加入MetadataExchange endpoint.
- mySvcHost.AddServiceEndpoint(
- ServiceMetadataBehavior.MexContractName,
- MetadataExchangeBindings.CreateMexHttpBinding(),
- "mex"
- );
- //加入应用程序 endpoint
- WSHttpBinding binding = new WSHttpBinding();
- mySvcHost.AddServiceEndpoint(typeof(IServiceInterface),
binding, address);- //打开 ServiceHost 实例。
- mySvcHost.Open();
- }
以上就是我们为大家介绍的WCF创建WebService所有操作步骤。