本文为大家分享了.net WCF简单实例,供大家参考,具体内容如下
1.创建WCF项目
2.系统自动生成IWcfService
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
[ServiceContract]
public interface IWcfService
{
[OperationContract]
string GetData( int value);
[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);
// TODO: 在此添加您的服务操作
}
// 使用下面示例中说明的数据约定将复合类型添加到服务操作。
[DataContract]
public class CompositeType
{
bool boolValue = true ;
string stringValue = "Hello " ;
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}
|
(1)服务契约:ServiceContract(服务)和OperationContract (方法)
(2)数据契约:DataContract(类)和DataMember(属性) 用于类和结构上
(3)消息契约:MessageContract 用于soap消息
3.WCF服务类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public class WcfService : IWcfService
{
public string GetData( int value)
{
return string .Format( "You entered: {0}" , value);
}
public CompositeType GetDataUsingDataContract(CompositeType composite)
{
if (composite == null )
{
throw new ArgumentNullException( "composite" );
}
if (composite.BoolValue)
{
composite.StringValue += "Suffix" ;
}
return composite;
}
}
|
4.服务配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
< system.serviceModel >
<!--配置绑定节点Start-->
< bindings >
< basicHttpBinding >
< binding name = "basicHttpBinding0" maxReceivedMessageSize = "2147483647" >
< readerQuotas maxStringContentLength = "2147483647" />
< security mode = "None" />
</ binding >
</ basicHttpBinding >
< netTcpBinding >
< binding name = "netTcpBinding0" maxReceivedMessageSize = "2147483647" >
< readerQuotas maxStringContentLength = "2147483647" />
< security mode = "None" />
</ binding >
</ netTcpBinding >
< wsHttpBinding ></ wsHttpBinding >
</ bindings >
<!--配置绑定节点End-->
<!--配置服务节点Start-->
< services >
<!--配置某一服务,在这里可以指定服务名称-->
< service name = "WcfServiceTest.WcfService" >
< endpoint address = "aaa" binding = "basicHttpBinding" bindingConfiguration = "basicHttpBinding0"
name = "BasicHttpBinding_WcfService" contract = "WcfServiceTest.IWcfService" >
< identity >
< dns value = "localhost" />
</ identity >
</ endpoint >
< endpoint address = "" binding = "netTcpBinding" bindingConfiguration = "netTcpBinding0"
name = "NetTcpBinding_WcfService" contract = "WcfServiceTest.IWcfService" >
< identity >
< dns value = "localhost" />
</ identity >
</ endpoint >
</ service >
</ services >
<!--配置服务节点End-->
< behaviors >
< serviceBehaviors >
< behavior >
<!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false -->
< serviceMetadata httpGetEnabled = "true" httpsGetEnabled = "true" />
<!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
< serviceDebug includeExceptionDetailInFaults = "false" />
</ behavior >
</ serviceBehaviors >
</ behaviors >
< protocolMapping >
< add binding = "basicHttpsBinding" scheme = "https" />
</ protocolMapping >
< serviceHostingEnvironment aspNetCompatibilityEnabled = "true" multipleSiteBindingsEnabled = "true" />
</ system.serviceModel >
|
5.iis部署WCF服务
6.添加客户端项目并添加服务引用
7.Main程序中添加wcf服务并调用方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
class Program
{
static void Main( string [] args)
{
var client = new WcfService.WcfServiceClient();
try
{
var str = client.GetData(2046);
Console.WriteLine( string .Format( "内容:{0}" , str));
client.Close();
}
catch (Exception ex)
{
Console.WriteLine( "出现异常!" );
client.Abort();
}
Console.ReadLine();
}
}
|
8.客户端配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
< system.serviceModel >
< bindings >
< basicHttpBinding >
< binding name = "BasicHttpBinding_WcfService" />
</ basicHttpBinding >
< netTcpBinding >
< binding name = "NetTcpBinding_WcfService" >
< security mode = "None" />
</ binding >
</ netTcpBinding >
</ bindings >
< client >
<!--<endpoint address="http://localhost/WcfServiceTest/WcfService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_WcfService"
contract="WcfService.IWcfService" name="BasicHttpBinding_WcfService" />-->
< endpoint address = "net.tcp://localhost/WcfServiceTest/WcfService.svc"
binding = "netTcpBinding" bindingConfiguration = "NetTcpBinding_WcfService"
contract = "WcfService.IWcfService" name = "NetTcpBinding_WcfService" >
< identity >
< dns value = "localhost" />
</ identity >
</ endpoint >
</ client >
</ system.serviceModel >
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。