2014-01-03 1 views
2

Я ищу решение для программной модификации COM + компоненты Свойства -> Поддержка транзакций в «Не поддерживается»Как программно установить COM + Component -> Transactions to Not Supported?

ручных операций являются следующей:

  1. Открыть Component Services диалог (comexp.msc)
  2. Развернуть Component Services ->Computers ->
  3. Найти и расширить COM+ QC Dead Letter Queue Listener
  4. Развернуть папку Components внутри открытого компонента
  5. Поиск компонента QC.DLQListener и откройте контекстное меню для этого компонента и выберите свойства
  6. На экране Свойства выберите «Транзакции» вкладку и установите Transactions Support в Not Supported
  7. Нажмите «OK», чтобы сохранить изменения

enter image description here

ответ

1

После того как я провел несколько часов на эту проблему, я, наконец, получил решение на C#.

Я получил огромное понимание из следующих статей:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using COMAdmin; 

namespace SetComPlusTransactionsToNotRequired 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      COMAdminCatalog catalog; 
      COMAdminCatalogCollection applications; 

      // Get the catalog 
      catalog = new COMAdminCatalog(); 

      // Get the list of all COM+ applications contained within this catalog 
      applications = (COMAdminCatalogCollection)catalog.GetCollection("Applications"); 
      applications.Populate(); 

      foreach (COMAdminCatalogObject application in applications) 
      { 
       if (application.get_Value("Name") == "COM+ QC Dead Letter Queue Listener") 
       { 
        COMAdminCatalogCollection components; 
        components = (COMAdminCatalogCollection)applications.GetCollection("Components", application.Key); 
        components.Populate(); 

        foreach (COMAdminCatalogObject component in components) 
        { 
         Console.WriteLine("Component: " + component.Name); 
         component.set_Value("Transaction", COMAdminTransactionOptions.COMAdminTransactionNone); 
        } 
        components.SaveChanges(); 
       } 
      } 
     } 
    } 
}