问:有没有人设法让MSDTC事务在本地计算机和驻留在Azure虚拟机上的数据库之间工作?
我读到了这一点:这表明SQL Azure不支持MSDTC' - 但SQL Azure是SQL数据库'选项,而不是虚拟机'那个可能碰巧有SQL数据库的选项?目前还不清楚:http://social.msdn.microsoft.com/Forums/windowsazure/en-US/894b6087-35ab-4f4f-aa19-f81ee56dc6bf/msdtc-with-the-new-virtual-machines?forum=WAVirtualMachinesforWindows
我找到了以下文章:http://sanganakauthority.blogspot.co.uk/2014/02/definitive-steps-to-configure-msdtc-on.html - 但这与同一虚拟网络上的Azure VM有关。
有足够多的文章让我希望这是可能的,因为它们似乎暗示了它。例如。 http://thoughtsofmarcus.blogspot.co.uk/2013/03/msdtc-error-after-cloning-virtual.html,http://www.jamescrowley.co.uk/2012/06/23/msdtc-gotchas-with-virtual-machines/
我通过阅读大量文章尝试了以下内容:
Error: SQLSTATE=24000,Native error=0,msg=[Microsoft][ODBC SQL Server Driver]Invalid cursor state
。RPC pinging exception -->1753(There are no more endpoints available from the endpoint mapper.)
- 端口和防火墙设置应该没问题。TurnOffRpcSecurity
注册表项(现在紧抓着吸管):http://support.microsoft.com/kb/839187 有什么想法吗?
解
最初的解决方案是设置一个Cloud Service,其上的Web站点连接到单独的虚拟机上的数据库,两者都驻留在同一个Azure虚拟网络上。在创建虚拟机之前,必须先添加虚拟网络。
然后我对Cloud Service重置本身感到恼火,我最初是从Visual Studio发布的,但是想调整它并且那些调整正在撤消。然后我将其切换到虚拟机(总共2个VM)。
然后我打破了我的订阅信用额度,所以我最终得到了2个虚拟机,一个带有网站,一个带有数据库,两者都在单独的虚拟网络上的单独Azure订阅上,但它们之间有虚拟网关。这有点令人费解但功能完美,本指南非常出色:http://blogs.technet.com/b/aviraj/archive/2014/05/16/microsoft-azure-configure-cross-subscription-vnet-to-vnet-connectivity-in-azure.aspx