wcf 分布式事务实践
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://