好久没来论坛了,不知道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最终也失败。
以上分布事务在局域网测试都已经通过。
希望有在外网配置成功的前辈给予指点。
问题个人感觉比较复杂,主要还是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最终也失败。
以上分布事务在局域网测试都已经通过。
希望有在外网配置成功的前辈给予指点。
在64位平台上注册以使Ws-at界面在DTC tab卡上显示,要求程序集注册工具RegAsm和Wsatui都是64位的,这种情况很多人都没注意,导致DTC属性窗口没有显示出来(通过Visual Studio Tools进入的命令行使用的是32位的,输入path就可以看出)证书上必须包含私钥才能和ssl绑定,因为解密时需要私钥。
但是大问题还没解决,就是如何配置Internet的分布事务。
http://msdn.microsoft.com/zh-cn/library/ms733943.aspx
1,事务管理器通信设置为允许入站,允许出站
2,验证选择不要求进行验证试试
3,从防火墙中把DTC设为例外