在 C# 中以编程方式读取 MS DTC 事务组件服务超时

Programmatically read MS DTC Transaction Component Services Timeout in C#

我目前正在使用 C# 开发一个小应用程序,以使用 Microsoft DTC 检查事务的几个错误和超时设置。

我在 CodeProject 找到了 MSDTC 经理 (http://www.codeproject.com/Articles/729805/MSDTC-Manager) which was very helpfull already. It is based on http://technet.microsoft.com/en-us/library/cc759136(v=ws.10).aspx

我还想不通的是,如何以编程方式(在 C# 中)read/access 超时 属性,可以在组件服务 (Windows > 运行 > comexp.msc): 组件服务 > 计算机 > 我的电脑 > 属性 > 选项 > 事务超时

例如,当我将值从 60 更改为 120 时,我已经尝试使用 Sysinternals 的 Process Monitor 来跟踪注册表更改或任何其他类型的更改,但是通过更改超时值,我得到了数百行,但没有人清楚地说明哪一个是正确的。

有什么想法吗?非常感谢!

在visual studio

  1. 转到参考资料
  2. 转到 COM 类型库
  3. 添加对 COM + 1.0 管理类型库的引用
  4. 使用类似下面的代码

    var catalog = new COMAdmin.COMAdminCatalog();
    catalog.Connect(System.Environment.MachineName);
    var coll = (COMAdmin.ICatalogCollection)catalog.GetCollection("LocalComputer");
    coll.Populate();
    var catalogObject = (COMAdmin.ICatalogObject)coll.Item[0];
    var timout = catalogObject.Item[0].Value["TransactionTimeout"];