本文為大家分享了.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 > |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。