KimhillZhang  

哎,小弟落伍了啊,连WCF都不懂的,今天看了下,有点学皮,赶紧发发。。。

主要写下创建WCF皮毛的东东。。。

一、创建一个WCF应用程序

1、定义一个接口,用来暴露服务端所支持的操作接口(即它可以被远程调用,标明为ServiceContract);

例:

[ServiceContract]

public interface Inter_Name

{

    //操作的方法

}

2、在操作的方法中定义一个SerivceContract中允许与客户端进行交互的操作接口,标明为OperationContract

例:

[ServiceContract]

public interface Inter_Name

{

     [OperationContract]

     void Inter_Method();

}

3、定义一个表示服务端和客户端对于要传输的数据的抽象。只要服务端和客户端共享同样的DataContract类型,它们就可以交换数据。DataContract组成消息的各个方面的信息。在类上标明为DataContract

例:

[DataContract]

public class ABClass

{

    //成员

}

二、创建一个winform应用程序用来开户wcf服务,添加一个app.config,,把在wcf应用程序里生成的webconfig下的<system.serviceModel>......</system.serviceModel>节点之间(含)拷贝到app.config下

 

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service name="WcfDemo.Service1" behaviorConfiguration="WcfDemo.Service1Behavior">
        <host>
          <baseAddresses>
            <!--添加服务调用地址-->
            <add baseAddress="http://localhost:8200/%22/>
          </baseAddresses>
        </host>


        <!-- Service Endpoints -->
        <endpoint address="" binding="wsHttpBinding" contract="WcfDemo.IService1">
          <!--
              部署时,应删除或替换下列标识元素,以反映
             用来运行所部署服务的标识。删除之后,WCF 将
              自动推断相应标识。
          -->
          <identity>
            <dns value="localhost"/>
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="WcfDemo.Service1Behavior">
          <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点 -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
 
</configuration>

其中

 <host>
          <baseAddresses>
            <!--添加服务调用地址-->
            <add baseAddress="http://localhost:8200/>
          </baseAddresses>
        </host>为手动添加,http://localhost:8200/这个表示服务开启后访问的地址

 

开户服务的代码:

ServiceHost host = new ServiceHost(typeof(WcfDemo.Service1));
host.Open();

posted on 2012-02-25 13:39  KimhillZhang  阅读(1056)  评论(0编辑  收藏  举报