WCF 通信

定义一个WCF service类

 

[ServiceContract] public interface ISimpleService { [OperationContract] string SimpleMethod(string msg); } class SimpleService : ISimpleService { public string SimpleMethod(string msg) { Console.WriteLine("The caller passed in " + msg); return "Hello " + msg; } }

 

WCF 服务发布有两种方式1:config文件,2:代码发布

  • 使用config来发布WCF,
  1. service结点 ? 各自的作用
  2. behavior结点 
  3. endpoint结点 定义发布协议?

一个定义好的config文件:

 

<system.serviceModel>

    <services>

      <service 

          name="Microsoft.ServiceModel.Samples.CalculatorService"

          behaviorConfiguration="CalculatorServiceBehavior">

        <host>

          <baseAddresses>

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

          </baseAddresses>

        </host>

        <!-- this endpoint is exposed at the base address provided by host: http://localhost:8000/ServiceModelSamples/service  -->

        <endpoint address=""

                  binding="wsHttpBinding"

                  contract="Microsoft.ServiceModel.Samples.ICalculator" />

        <!-- the mex endpoint is exposed at http://localhost:8000/ServiceModelSamples/service/mex -->

        <endpoint address="mex"

                  binding="mexHttpBinding"

                  contract="IMetadataExchange" />

      </service>

    </services>

 

    <!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->

    <behaviors>

      <serviceBehaviors>

        <behavior name="CalculatorServiceBehavior">

          <serviceMetadata httpGetEnabled="True"/>

          <serviceDebug includeExceptionDetailInFaults="False" />

        </behavior>

      </serviceBehaviors>

    </behaviors>

 

  </system.serviceModel>

 

 

  • 客户端接收的过程:

1:在config文件中指定server端url,

如<client>

      <endpoint name=""

                address="http://localhost:8000/servicemodelsamples/service" 

                binding="wsHttpBinding" 

                contract="Microsoft.ServiceModel.Samples.ICalculator">

      </endpoint>

    </client>

2:定义相对于服务器段的接口 然后实现这个接口,这个接口其实就是server类在客户端的代理,然后就可以在客户段使用代理类了

 

疑点:1: 服务--客户之间协议的选择

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值