0

我正在尝试创建一个从事务系统死信队列中读取死信的服务。

服务配置如下所示:

<service name="NotificationDeadLetterQueueService">
 <endpoint
  address="net.msmq://localhost/system$;DeadXact"
  binding="netMsmqBinding"
  contract="INotificationService"
/>
</service>

我的服务接口:

[ServiceContract]
public interface INotificationService
{
[OperationContract(IsOneWay=true)]
[NetDataContractSerializerFormatAttribute]
void HandleNotification(Notification notification);
}

通过我的服务实现:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class NotificationDeadLetterQueueService : INotificationService
{
   #region INotificationService Members

   [OperationBehavior(TransactionScopeRequired = true)]
   public void HandleNotification(Notification notification)
   {
      throw new NotImplementedException();
   }

   #endregion
}

并像这样启动主机:

ServiceHost serviceHost = new ServiceHost(typeof(NotificationDeadLetterQueueService));
serviceHost.Open();

到目前为止,一切看起来都像许多书籍和教程中描述的那样,但是当我在事务性死信队列中生成死信时,服务不会被调用。我的服务出了什么问题?

感谢帮助恩拉

4

1 回答 1

0

我发现了问题,这很棘手。msmq 客户端端点使用带有 的绑定配置,因此死信队列服务还需要将安全模式定义为 none 的绑定。

于 2010-03-03T16:09:12.323 回答