本文为大家分享了.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 > |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。