哎,小弟落伍了啊,连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();