好久没来论坛了,不知道WCF问题应该发布到哪里?废话不多说了,切入正题。
问题个人感觉比较复杂,主要还是WCF分布事务的问题,分开来说吧。
说下配置情况:
数据库服务器DB与承载WCF服务端的服务器WCFServer 都在机房托管,两台机器属于局域网。
WCF的客户端(WEB网站)服务器WCFClient在公司。如果WCF启用分布事务的话,在客户端传入事务流问题一:绑定采用wsHttpbinding,在注册表已经禁用了OleTx协议的自动升级,故分布事务协议默认是WS-AT协议,但是配置WS—AT的时候出现问题:注册WsatUI.dll的时候,32为系统没有问题,64系统注册成功后,WS-AT的Tab选项还是不能显示。只能通过wsatconfig.exe工具进行启动ws-at协议,但是通过命令行配置是总提示找不到ssl证书,证书已经都导入到计算机和受信任机构。没有问题。
最后总结出是64为系统问题,那是不是64为系统就不能实现外网的分布事务了?请高手解答。问题二:绑定采用NetTcpBinding,分布事务协议采用OleTx时,提示:与基础事务通信失败。然后协议采用WS-AT时,提示WS-AT禁用。问题三:通过这两次尝试,最终WCF关于Internet的分布事务最后都以失败告终,看msdn上说OleTx协议只要是window平台都可以使用的,但是为什么会报错提示:与基础事务通信失败;ws-at最终也失败。
以上分布事务在局域网测试都已经通过。
 希望有在外网配置成功的前辈给予指点。

解决方案 »

  1.   

    你说的对,是64位的问题。oleTx确实只支持windows平台,而且需要在DTC配置,启用网络访问和事务管理器的入站和出站。
    在64位平台上注册以使Ws-at界面在DTC tab卡上显示,要求程序集注册工具RegAsm和Wsatui都是64位的,这种情况很多人都没注意,导致DTC属性窗口没有显示出来(通过Visual Studio Tools进入的命令行使用的是32位的,输入path就可以看出)证书上必须包含私钥才能和ssl绑定,因为解密时需要私钥。
      

  2.   

    我当时命令行32,64都用了,WsatUI也有几个都试过了,都不行。楼上的请问配置过Internet的WCF分布事务不,求教呀
      

  3.   

    终于注册成功了WS-AT的 tab卡上显示,当时太大意了,64位命令行的时候 忘记输入/codebase了。
    但是大问题还没解决,就是如何配置Internet的分布事务。
      

  4.   

    你通过ws-at界面方式进行配置了? 还是不行吗微软有一遍文章写如何配置ws-at事务支持的,可以看看,里面有一些细节
    http://msdn.microsoft.com/zh-cn/library/ms733943.aspx
      

  5.   

    这两天出差了,很抱歉刚刚看到楼上的回帖,这篇文章之前看过了,配置都没有问题。还是报错,说是机器未开启WS-AT协议。 Version10禁用。。很无奈
      

  6.   

    看起来问题还是出在wsat中,本地dtc属性中的安全tab设置正确了吗,
    1,事务管理器通信设置为允许入站,允许出站
    2,验证选择不要求进行验证试试
    3,从防火墙中把DTC设为例外
      

  7.   

    这些都是基本的,设置好了,就是找不出问题了,哎 弄了好几天了。以前用wcf都是在局域网。