WCF面试题及答案 - [ 微软技术面试题 ]

WCF代表Windows Communication Foundation。 它是一个用于构建,配置和部署可互操作的分布式服务的框架。通过阅读下面WCF面试题和答案,有助于让您在面试过程中应付自如,也可作为测评或复习巩固WCF知识。

1. WCF是什么?

WCF代表Windows Communication Foundation。 它是一个用于构建,配置和部署可互操作的分布式服务的框架。 使用WCF可以将数据作为异步消息从一个服务端点发送到另一个服务端点。 服务端点可以是IIS托管的连续可用服务的一部分,也可以是应用程序中托管的服务。 端点可以是从服务端点请求数据的服务的客户端。 它提供了一种无需更改代码即可编写更安全,更灵活的服务的工具。 它还提供内置的日志记录支持。 它使您可以使用配置启用/禁用日志记录。详细答案>>

2. 什么是WCF服务端点?

WCF服务端点有三个基本元素:地址,绑定和契约。 地址:它定义标识服务位置的URL的地址,并指定接收消息的位置。它被指定为统一资源标识符(URI)。 URI模式部分命名用于到达地址的传输机制,例如:HTTP和TCP。 URI的层次结构部分包含唯一的位置,其格式取决于传输机制。 端点地址可以为服务中的每个端点创建唯一的端点地址,或者在某些条件下,跨端点共享地址。以下示例显示了使用HTTPS协议和非默认端口的地址: https://cohowinery:8005/ServiceModelSamples/Ca...详细答案>>

3. WCF中使用的基本组件是什么?

WCF中使用的基本组件列表: 服务类 服务运行时层包含仅在服务的实际操作期间发生的行为,即服务的运行时行为。 限制控制处理的消息数量,如果服务需求增长到预设限制,则可以改变这些消息。 端点 WCF服务是一个公开端点集合的程序。 每个端点都是与世界通信的门户。 所有WCF通信都通过端点进行。 端点由三个组件组成。 托管环境 必须在某个过程中托管服务。 主机是控制服务生命周期的应用程序。 服务可以由现有托管进程自托管或管理。详细答案>>

4. WCF中端点的“Address”属性是什么?

“Address”属性是服务级别中定义的端点的一部分。 此属性用于指定服务所在的位置。

详细答案>>

5. WCF中端点的“Binding”属性是什么?

“Binding”属性是服务级别中定义的端点的一部分。 此属性用于指定类型协议,编码和传输。这些所有因素都由交流方决定。

详细答案>>

6. WCF中端点的“Contract”属性是什么?

“Contract”属性只是客户端和服务器之间的接口,客户端和服务器之间相互通信。 合同用于指定可用的操作。

详细答案>>

7. 什么是服务?

服务是一组暴露给外界的功能。 面向服务(SO)是构建面向服务的应用程序的一组抽象原则和最佳实践。

详细答案>>

8. 什么是WCF中的“服务合同(Service Contracts)”?

Service Contracts属性在服务级别用于WCF服务。 它提供了可以从该服务执行的操作列表。

服务合同可以定义为:

[ServiceContract]
详细答案>>

9. WCF中有哪些不同的实例模式?

WCF中的实例模式列表:

  • Per Call
  • Singleton
  • Per Session
详细答案>>

10. 什么是WCF中的“Per Call”实例模式?

当请求进行服务时,它会为每个方法调用创建一个新的服务实例,一旦响应进入客户端,这将被处理掉。 整个过程称为按呼叫实例模式。

详细答案>>

11. 什么是WCF中的“Per Session”实例模式?

每个会话(Per Session)实例模式在服务和客户端之间创建一个逻辑会话,它将一直保持到会话结束。 当客户端从服务请求时,将创建会话,并且它专用于该客户端的实例,并且当客户端会话结束时它将结束。详细答案>>

12. 什么是WCF中的“Singleton”实例模式?

在“Singleton”模式下,所有客户端都连接到服务的单个实例,当服务配置为“Singleton”模式时,将在托管服务时创建实例,并在关闭服务后将其处理。

详细答案>>

13. 客户端是什么?

服务的客户端是消耗其功能的程序单元。 客户端可以是控制台应用程序,Windows窗体,WPF或Silverlight类或ASP.Net页面等。

详细答案>>

14. WCF如何是如何工作的?

WCF遵循“软件即服务”模型。 在此模型中,所有功能单元都被定义为服务和通信,每个点都是与客户端或其他服务的门户或连接。 它是一个公开一组端点的程序。

详细答案>>

15. ASMX Web服务和WCF有什么区别?

WCF和ASMX Web服务之间的主要区别在于,ASMX旨在仅使用SOAP over HTTP发送和接收消息,而WCF可以帮助您使用任何传输协议上的任何格式发送和接收消息。 ASMX Web服务只能在IIS中托管,而WCF服务具有以下所有托管选项: IISWAS(Windows进程激活服务)控制台应用Windows NT服务WCF提供了HostASMX Web服务支持仅限于HTTP,而WCF支持HTTP,TCP,MSMQ,NamedPipes。ASMX安全性有限。 通常,使用IIS和ASP.NET安全...详细答案>>

16. 合约WCF定义了多少种类型?

WCF定义了四种类型的合约: 服务合约 ServiceContract属性将CLR接口(或推断的接口,稍后将会看到)映射到技术中立的服务合约。 ServiceContract属性将CLR接口(或类)公开为WCF合约,与该类型的可见性无关。 数据合约 服务使用的数据类型的元数据中的描述。这使其他人可以与服务进行互操作。数据类型可用于消息的任何部分,例如,作为参数或返回类型。如果服务仅使用简单类型,则无需显式使用数据协定。 故障合约 可以与服务操作相关联,以表示可以返回给调用者的错误。 消息合约 描述消息的...详细答案>>

17. 托管WCF服务有哪些要求?

至少需要一个托管进程,一个ServiceHost实例和一个配置用于托管WCF服务的端点。 以下是托管服务的可能方法: 托管在托管应用程序/自托管中: 控制台应用Windows应用程序Windows服务托管在Web服务器上IIS 6.0(ASP.NET应用程序仅支持HTTP)Windows进程激活服务(WAS),即IIS 7.0支持HTTP,TCP,NamedPipes,MSMQ。详细答案>>

18. WCF中有哪些不同的隔离级别?

以下是WCF中不同隔离级别的列表: 读取未提交:也称为脏隔离级别。 它确保无法读取损坏的数据。 这是最低的隔离级别。读取已提交:它确保不读取任何其他应用程序已更改但尚未提交的数据。 这是默认级别。可重复读取:它停止使用污垢读取和不可重复读取。 它声明通过查询获取的数据将被锁定,并且不会被任何其他事务更新。可序列化:在事务完成之前,它不允许任何修改和添加新数据。它是一个非常严格的水平。快照:在修改已被任何事务更改的数据时出现错误。详细答案>>

19. 请列出WCF中所有绑定的地址格式。

地址格式列表及其各自的绑定: TCF地址格式 - net.tcp://local host:portnumberHTTP地址格式 - http://local host:portnumberMSMQ地址格式 - net.msmq://local host:portnumber详细答案>>

20. 解释WCF RIA是什么?

WCF RIA是开发RIA(Rich Internet App)的n层应用程序的框架,它用于富Internet应用程序,如Silverlight,AJAX等。WCF RIA用于解决紧耦合等主要问题。

详细答案>>

21. 如何为WCF生成代理?

可以使用以下步骤生成代理:

  • 使用Visual Studio
  • 使用SvcUtil
详细答案>>

22. 什么是约束力?

绑定用于定义端点如何与世界通信,它定义了HTTP或TCP等传输。 它可以包含绑定元素,这些元素指定用于保护端点使用的消息模式的安全机制等详细信息。

详细答案>>

23. WCF中有哪些不同的通信模式?

WCF中有三种通信模式: 单向 在单向操作模式中,客户端将向服务器发送请求,而不关心服务执行是成功还是失败。 从服务器端没有返回,它是单向通信。 请求-回应 当客户端向WCF服务发出请求时,客户端将等待从服务获得响应(直到receiveTimeout)。 获得响应后,它将开始执行语句的其余部分。 回调 它是呼叫客户端的服务。 其中,服务将充当客户端,客户端将充当服务。详细答案>>

24. WCF中的请求-响应模式是什么?

当客户端向服务发出请求时,它将等待它返回响应。

  • 如果在给定时间之前未收到响应,则会显示错误。
  • 如果客户端获得响应,则将执行下一条指令。
详细答案>>

25. WCF中有多少种类型的绑定?

WCF支持九种类型的绑定: 基本绑定TCP绑定对等网络绑定IPC绑定Web服务绑定联合Web服务绑定双工WS绑定MSMQ绑定MSMQ集成绑定详细答案>>

26. WCF支持哪些传输模式?

WCF支持以下传输模式:

  • HTTP
  • TCP
  • PEER网络
  • IPC(进程间通信)
  • MSMQ
详细答案>>

27. 托管WCF服务的方式有哪些?

托管WCF服务的方式是:

  • IIS
  • 自托管
  • WAS(窗口激活服务)
详细答案>>

28. WCF中的双工契约是什么?

在WCF中,使用双工消息传递或回叫来与客户端进行通信。 在不同的传输系统上,WCF中的双工消息传递就像TCP,命名管道甚至HTTP一样。 总的来说,这被称为WCF中的双工契约。 基本上,双工服务契约是一种消息交换模式,其中两个端点都可以独立地向另一个端点发送消息。 因此,双工服务可以将消息发送回客户端端点,从而提供类似事件的行为。 当客户端连接到服务并为服务提供服务可以将消息发送回客户端的通道时,会发生双工通信。 请注意,双工服务的类似事件的行为仅适用于会话。详细答案>>

29. WCF中DataContracts的用途是什么?

在WCF中,可以通过消息从客户端与服务器进行通信。消息在服务器和客户端之间来回传递。 出于安全考虑,要序列化通过线路发送的消息。 DataContact属性在类级别给出,通过在属性上使用Datamember属性来序列化类。详细答案>>

30. DataContractSerializer是什么?

DataContractSerializer是在.NET 3.0中引入的,WCF使用DataContractSerializer作为默认值。 但是现在这个序列化器也可以用于其他序列化目的。 对于序列化,使用WriteObject()方法。 例如: DataContractSerializer dataContractSerializer = new ataContractSerializer(typeof(MyTestClassType)); 详细答案>>

31. 将如何启用服务的元数据信息?

以下是为WCF启用元数据的两种方法: 对于默认端点:<serviceMetadata>标记用于web.config文件而不指定端点。对于自定义端点:<serviceMetadata>标记用于web.config文件中,并指定已定义的端点。详细答案>>

32. 哪些绑定用于WCF中的元数据配置?

用于元数据的绑定有以下几个:

  • mexHttpBinding
  • mexNamedPipeBinding
  • mexHttpsBinding
  • mexTcpBinding
详细答案>>

33. 如何在不创建客户端应用程序的情况下测试WCF应用程序?

有一个名为wcftestclient.exe的工具,用于在不创建客户端应用程序的情况下测试WCF服务。可以从visual studio命令提示符打开此工具。

详细答案>>

34. 什么是传输和消息可靠性?

传输和消息可靠性是: 传输可靠性:它在网络数据包级别提供点对点保证传输,并保证数据包的顺序。消息可靠性:它处理消息级别的可靠性,与传递消息所需的数据包无关。详细答案>>

35. 什么是WCF中的传输可靠性?

“传输可靠性”指定了协议TCP通过网络传送数据包的保证。 它还维护数据包的顺序以及数据包的传送。

详细答案>>

36. 什么是SOA?

SOA代表面向服务的体系结构。 它是一组服务,用于确定两个计算实体之间如何进行通信以实现某些业务功能,以及一个实体如何代表其他实体工作。

详细答案>>

37. WCF中“receiveTimeout”属性的用法是什么?

“recieveTimeout”属性用于获取/设置使连接处于活动状态的时间间隔。

详细答案>>

38. 如何在WCF中使用Svcutil生成代理?

SvcUtil是一个命令行实用程序。应该编写以下命令来生成代理:

C:/> svcutil.exe http://localhost:8087/DataService/?wsdl /out:Client.cs /config:a
pp.config
详细答案>>

39. WCF支持哪些型号的型号?

WCF服务支持2种样式的模型: RPC样式:在RPC样式中,可以使用序列化类型,它提供可用于本地调用的功能。消息样式:在消息样式中,WCF允许自定义消息头,它还定义正文和头消息的安全性。详细答案>>

40. WCF中的单向模式是什么?

在WCF单向模式下,客户端向服务器发送请求,但不等待响应到来。 它不关心请求是否失败或成功。 在收到响应之前,客户端不会被阻塞。

详细答案>>

41. 什么是WCF中的回调模式?

WCF回调模式是一种特殊类型的模式,回调上的WCF调用客户端的方法,在这种情况下,WCF服务充当客户端,客户端充当服务。 “HTTPBinding”不支持此模式,因此在此模式下使用“WSDualHttpBinding”。详细答案>>

42. WCF支持哪些不同类型的事务管理器?

这些是WCF支持的三种类型的事务管理器:

  • 重量轻
  • WS-Atomic事务
  • OLE事务
详细答案>>

43. WCF中的MEP是什么?

MEP代表消息交换模式,允许使用三种类型的消息交换模式:

  • 数据报
  • 请求和响应
  • 复式
详细答案>>

44. 什么是WCF中的限制(Throttling)?

在WCF中,“Throttling”用于限制在应用程序级别创建的会话或实例。它用于提高性能。

详细答案>>

45. Throttling中“maxConcurrentCalls”的用法是什么?

Throttling中的“maxConcurrentCalls”属性用于限制转发到服务实例的调用总数。其默认值为16

详细答案>>

46. 什么是WCF中的“KnowType”?

KnowType是一个用于父类的属性,因为如果将复杂类定义为类的属性,那么在反序列化过程中编译器将非常困难。

详细答案>>

47. 举一个KnowType的例子。

参考以下示例代码: [KnownType(typeof(TestClassCar))] [KnownType(typeof(TestClassTruck))] [DataContract] public class TestClassVehicle { } [DataContract] public class TestClassCar : TestClassVehicle { } [DataContract] publ...详细答案>>
注: 此试题仅作为相关知识水平测试,不能作为权威试题和答案。非商业转载注明原文链接即可;商业转载需本站授权同意。