MsmqIntegrationBindingElement.BuildChannelListener<TChannel> 方法

定义

使用提供的上下文生成通道侦听器。

public:
generic <typename TChannel>
 where TChannel : class, System::ServiceModel::Channels::IChannel override System::ServiceModel::Channels::IChannelListener<TChannel> ^ BuildChannelListener(System::ServiceModel::Channels::BindingContext ^ context);
public override System.ServiceModel.Channels.IChannelListener<TChannel> BuildChannelListener<TChannel> (System.ServiceModel.Channels.BindingContext context) where TChannel : class, System.ServiceModel.Channels.IChannel;
override this.BuildChannelListener : System.ServiceModel.Channels.BindingContext -> System.ServiceModel.Channels.IChannelListener<'Channel (requires 'Channel : null and 'Channel :> System.ServiceModel.Channels.IChannel)> (requires 'Channel : null and 'Channel :> System.ServiceModel.Channels.IChannel)
Public Overrides Function BuildChannelListener(Of TChannel As {Class, IChannel}) (context As BindingContext) As IChannelListener(Of TChannel)

类型参数

TChannel

通道的类型。

参数

context
BindingContext

用以生成通道侦听器的 BindingContext

返回

IChannelListener<TChannel>

可用于创建可从现有 MSMQ 应用程序接收消息的通道的 MSMQ 集成通道侦听器。

例外

上下文值为 null

TChannel 不为 IInputChannel

ExactlyOnce 为 true,而 Durable 为 false

  • 或 -

队列不可读。

  • 或 -

ExactlyOnce 为 true,而队列是非事务性的。

  • 或 -

ExactlyOnce 为 false,而队列是事务性的。

  • 或 -

在 Windows Vista 中,ReceiveErrorHandling 设置为 Move,而队列名称中包含一个“;”。

  • 或 -

在 Windows Vista 中,ExactlyOnce 设置为 true,但是不能打开重试子队列。

  • 或 -

ReceiveErrorHandling 设置为 Reject 或 Move,而平台是 Windows Vista。

  • 或 -

MsmqAuthenticationMode 设置为 WindowsDomain,且 MSMQ 是在没有 Active Directory 集成的情况下安装的。

  • 或 -

MsmqAuthenticationMode 为 None,而 MsmqProtectionLevel 不为 None。

  • 或 -

MsmqAuthenticationMode 为 Certificate 或 WindowsDomain,而 MsmqProtectionLevel 为 None。

注解

通道侦听器在服务端创建,用于接收客户端通道发送的消息。 该服务必须先调用 IChannelListener.Open,接着调用 IChannelListener.AcceptChannel,以获取实际通道的引用。 然后,必须调用 IChannel.Open 来打开通道。 此时,该渠道就可用于检索消息了。

适用于