1 一个项目中有几个WCF服务, 一个方法里同时渗杂着几个WCF服务的方法.
我想实现这样的效果: 在方法A里面有B服务的方法, 也有C服务的方法.
举个例子
B服务的方法: public void B () { 操作数据库 }
C服务的方法:public void C() { 操作数据库 }
A方法调用B服务和C服务
public void A()
{
using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope())
{
try
{
// 调用B服务的方法
// 调用C服务的方法
}
// 回滚
catch(Exception ex)
{
System.Transactions.Transaction.Current.Rollback();
}
// 成功时提交
ts.Complete();
}
}
B服务和C服务全部采用WsHttpBinding ,
我在B服务和C服务上尝试了 TransactionFlowOption.Allowed , TransactionScopeRequired = true 或 TransactionFlowOption.Mandatory, TransactionScopeRequired = true
但都没有做到事务的回滚, 除非在B服务和C服务上面加上 using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope())
才可以做到事务回滚。 请问一下,我可不可以不加上面这行呢。
2 WCF有没有像WEB服务那样可以设置服务的Url ?