给定启用事务流的事务感知绑定和具有TransactionFlowOption.Allowed的操作Op1,是否可以使从操作Op1调用的不同操作Op2不参与事务,使得任何操作Op2永远不会回滚以防万一操作失败Op1
插图
// Op1: logonUser OperationBehavior(TransactionScoperequired = true)] public bool logonUser(String username,String password) { // AuditWriteProxy declaration and instantiation var valid = false; /* Validation logic */ // If validation Failed if(!valid) { // Invoke an op in an Audit Service. // Op2 = AuditService.Write // **MUST NOT BE ROLLED BACK EVEN AFTER WE [throw]** AuditServiceProxy.Write("Authentication Failed for user " + username); throw new FaultException<AuthenticationFault>("Validation Failed"); // After throw,we expect everything transactional to rollback } AuditServiceProxy.Write("User " + username + " authenticated successfully"); return true; }
笔记:
> AuditService.Write操作使用msmq绑定并且是单向的
>我在AuditService.Write操作合同上尝试了TransactionFlowOption.NotAllowed,在实现上尝试了TransactionScoperequired = false.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。