下面我们就构建一个WCF -HelloWorld:

1新建一个ConsoleApplication工程Named Service  添加一个Config文件。

2添加 System.ServiceModel 命名空间,程序中添加 using System.ServiceModel:

WCF简介(四)--DEMO
WCF简介(四)--DEMO

   

   3定义一个Service Contract


WCF简介(四)--DEMOnamespace service
.

IHello类标记了[ServiceContract]属性,这就使得该类成为了一个WCF Service,而其中的方法void Hello()则因为标记了[OperationContract],而成为该Service的一个Operation

   4.定义一个HelloWorld类实现IHello

…….

  public class HelloWorld : IHello

    {

             public void Hello()

               {

                 Console.WriteLine("Hello World!");

              }

……

在实现IHello类和方法中不需要ServiceContractOperationContract属性

   5配置App.config文件

 

   右键App.config选择 Edit WCF Configuration 或者在Tools 选择 WCF Service

   (1Configuration Editor

WCF简介(四)--DEMO

   (2Create a New Service 
WCF简介(四)--DEMO
   Set Name = service.HelloWorld
WCF简介(四)--DEMO


   (3Configuration Endpoints

WCF简介(四)--DEMO

WCF简介(四)--DEMO

  <endpoint address=""

              binding="wsHttpBinding"

             contract="service.IHello" />


   (4Configuration BaseAddress

WCF简介(四)--DEMO

<host>

          <baseAddresses>

            <add baseAddress="http://localhost:8000/HelloWorld/service"/>

          </baseAddresses>

      </host>

   (5Configuration Service Medtadata 

            Select-Advanced-Service Behavior(右键)- New ServiceBehaviorConfiguration


WCF简介(四)--DEMO

   (6Set  Name=HelloWorldServiceBehavior

WCF简介(四)--DEMO

Select –serviceMetadata 设置HttpGetEnbled=true
WCF简介(四)--DEMO

   (7Select service.HelloWorld 设置
WCF简介(四)--DEMO

App.config 文件如下:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

    <system.serviceModel>

      <services>

        <service behaviorConfiguration="HelloWorldServiceBehavior" name="service.HelloWorld">

          <endpoint binding="wsHttpBinding" bindingConfiguration="" contract="service.IHello" />

          <host>

            <baseAddresses>

              <add baseAddress="http://localhost:8080/HelloWorld/service" />

            </baseAddresses>

          </host>

        </service>

      </services>

      <behaviors>

        <serviceBehaviors>

          <behavior name="HelloWorldServiceBehavior">

            <serviceMetadata httpGetEnabled="true" />

          </behavior>

        </serviceBehaviors>

      </behaviors>

    </system.serviceModel>

</configuration>


   6.实现Host

……

  public static void Main()

{

  using (ServiceHost serviceHost = new ServiceHost(typeof(HelloWorld)))

            {

                    serviceHost.Open();

                    Console.WriteLine("The service is ready.");

                    Console.WriteLine("Press <ENTER> to terminate service.");

                    Console.WriteLine();

                    Console.ReadLine();

                }

                    if (serviceHost.State != CommunicationState.Closed)

                    {

                        serviceHost.Close();

                    }

            }

}


   7. Run Service

WCF简介(四)--DEMO

 IE中输入 http://localhost:8000/HelloWorld/service 如下:

WCF简介(四)--DEMO

    8. 实现Client(下面我们用SvcUtil 工具)

   在Solution 添加一个Project Named Client Program.cs 改为Client.cs

   在命令行 输入(已经启动Service):

WCF简介(四)--DEMO

这样就在D盘生成2个文件 HelloWorld.cs out.config  把这2个文件导入Client 修改out.config  app.config

修改Client.CS 代码如下:

……

using System.ServiceModel;

class ClientHello

    {

        static void Main(string[] args)

        {

           HelloClient Client = new HelloClient();

Console.WriteLine("Client is Ready" + Environment.NewLine +"Press <ENTER> to terminate client." +);

           try

           {

               Client.Hello();

               Console.WriteLine("Hello World!");

               Console.ReadLine();

           }

           catch (TimeoutException timeout)

           {

               Console.WriteLine(timeout.Message);

               Console.ReadLine();

               Client.Abort();

           }

           catch (CommunicationException commProblem)

           {

               Console.WriteLine(commProblem.Message);

               Console.ReadLine();

               Client.Abort();

           }

           finally

           {

               if(Client.State !=CommunicationState.Closed)

               Client.Close();

           }

9 Run Solution

Client                                              Server

WCF简介(四)--DEMO

以上就是构建一个HelloWorld代码下载:HelloWorld

相关文章:

  • 2022-12-23
  • 2021-05-22
  • 2021-12-16
  • 2022-01-31
  • 2021-07-22
  • 2022-01-30
猜你喜欢
  • 2021-09-18
  • 2021-08-30
  • 2021-11-11
  • 2022-12-23
  • 2021-08-27
  • 2022-01-29
相关资源
相似解决方案