注册 登录
编程论坛 WCF论坛

wcf 分布式事务实践

好学 发布于 2010-04-11 21:15, 6112 次点击
WCF 中支持分布式事务有关配置过程及其说明请参考Kevin Li文章《基于WS-AtomicTransaction标准的WCF远程分布式事务(一)》
原文地址:http://
文章已经做了非常详细的说明。本文主要针对具体实践中遇到的问题做一些补充说明。

环境
服务端:windows server 2003 R2 Enterprise Edition(SP2)
        .net framework 3.5
        Oracle9i Client
        计算机名:servervm
客户端 windows XP professional 2002(SP3)
       计算机名: clientvm
双方调用关系:servervm提供WCF服务(c# Console程序)操作Oracle数据库查询或更新数据,其过程启用事务。
             clientvm部署web应用程序,调用服务获得或更新数据,其过程启用事务。

部署过程:
主要是按照Kevin Li文章中所作说明进行操作
一.配置server端(本示例中计算机servervm windows server 2003 R2 Enterprise Edition(SP2))
   1.如果操作系统已经安装sp2就不必安装Kevin Li文章中所说的补丁。如需安装,请注意针对2003和XP操作系统提供了不同版本补丁
   2.Oracle9i Client:必须安装ODAC92070.exe,点击程序后会产生两个文件夹:“Disk1”和“Translations”,打开“Disk1”双击setup进行安装
     安装完毕后拷贝msvcrtd.dll到system32下,其详细说明请参见fibona 文章:无法加载 DLL“oramts.dll”: 《找不到指定的模块。
     (异常来自    HRESULT:0x8007007E)》原文地址:http://
   3.生成证书:在计算机servervm和clientvm分别生成证书并进行配置,
     详细过程参见Kevin Li文章《基于WS-AtomicTransaction标准的WCF远程分布式  事务(一)》
     证书生成工具可以用VS自带工具makecert.exe在VS命令行生成,需要注意的是正如Kevin Li所说:-n "CN=MachineA"参数一定要用FQDN
   4.配置MS DTC:详细步骤同样Kevin Li在文章里已经说的很明白,需要说明的是配置https端口时一般不要用443,容易产生冲突。
   5.配置自己所写的WCF service的应用程序配置文件的<system.serviceModel>节(参考Kevin Li文章中几种binding)
二.配置client端 (本示例中计算机clientvm windows XP professional 2002(SP3))
   过程大体同server端
1.安装操作系统补丁
2.生成和配置点对点信任证书(如果配置server端时已对此计算机进行了相关操作则忽略此步骤)
3.注册和配置ws-at协议组件(注:此处在XP下可能默认配置不可用,需要首先在MS DTC配置中启用网络访问详细过程请参见 CloudSpace 文章
 《使用 WS-  AtomicTransaction 构建事务 Web 服务》中“步骤 3:在 Microsoft Distributed Transaction Coordinator (MSDTC) 中启用网络访 问”部分 原文地址:http://space.,另外https端口不要和server端相同。)
4.配置应用程序配置文件<systems.serviceModel>节(参考Kevin Li文章中几种binding)

 其他一些更详细内容可以参考msdn 地址:http://msdn.
 以及
 《Accessing a WCF service from a Web application》 地址:http://social.msdn.
 《MSDTC transaction manager's WS-AtomicTransaction protocol service is disabled》地址:http://social.msdn.

出自:http://
4 回复
#2
work0012010-04-14 09:09
落果。看看。。。
#3
随影居士2011-04-29 10:05
有没有什么办法在C#中实现版本更新控制的问题?请教一下
假如说开发一个软件分为1.0  2.0.  3.0  三个版本
免费用户用1.0 的  付费用户付100块用2.0的,高级用户付300用3.0的请问各位有什么别的办法实现吗?
#4
a4509596792011-08-20 18:28
#5
鸥翔鱼游2014-04-22 14:44
且学且珍惜,得认学习真正消化
1