.net WCF简单实例详解(5)

2025-05-29 0 89

本文为大家分享了.net WCF简单实例,供大家参考,具体内容如下

1.创建WCF项目

.net WCF简单实例详解(5)

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服务

.net WCF简单实例详解(5)

.net WCF简单实例详解(5)

6.添加客户端项目并添加服务引用

.net WCF简单实例详解(5)

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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 .net WCF简单实例详解(5) https://www.kuaiidc.com/98597.html

相关文章

发表评论
暂无评论