从代码/命令行设置COM +组件的应用程序回收设置

时间:2013-04-30 12:39:19

标签: c# vbscript com+

我有以下问题:
如何从c#代码或命令行脚本配置应用程序回收设置?
(请看下面的截图) 我没有成功找到合适的.NET属性
你的帮助将非常宝贵 提前致谢

enter image description here

1 个答案:

答案 0 :(得分:1)

设置应用程序使用.bat脚本本身无法实现COM +应用程序的回收属性。据我所知,这样做没有.NET属性或System.EnterpriseServices助手。

COMAdmin是一种以编程方式设置COM +应用程序属性的方法。请参阅Configuring COM+ Application Recycling Values MSDN页面。该页面提供了用于配置Application Recycling属性的示例VB6代码。

以下是MSDN示例到VBScript的直接端口。

If Not SetMyApplicationRecycling("MyApp", 5, 10, 9, 100, 20) Then
    MsgBox "SetMyApplicationRecycling failed."
End If

Function SetMyApplicationRecycling( _
  strApplicationName, _
  lngLifetimeLimit, _
  lngMemoryLimit, _
  lngCallLimit, _
  lngActivationLimit, _
  lngExpirationTimeout _
)  ' Return False if any errors occur.

    SetMyApplicationRecycling = False  ' Initialize the function.
    On Error Resume Next  ' Initialize error handling.

    Dim objAppCollection
    Dim objApplication
    Set objCatalog = CreateObject("COMAdmin.COMAdminCatalog")
    Set objAppCollection = objCatalog.GetCollection("Applications")
    objAppCollection.Populate
    For Each objApplication In objAppCollection
        With objApplication
            If .Name = strApplicationName Then
                .value("RecycleLifetimeLimit") = lngLifetimeLimit
                .value("RecycleMemoryLimit") = lngMemoryLimit
                .value("RecycleCallLimit") = lngCallLimit
                .value("RecycleActivationLimit") = lngActivationLimit
                .value("RecycleExpirationTimeout") = lngExpirationTimeout
                objAppCollection.SaveChanges                

                MsgBox strApplicationName & _
                  " recycling values are now set to the following: " & _
                  vbNewLine & vbNewLine & _
                  "Lifetime Limit (minutes) = " & lngLifetimeLimit & vbNewLine & _
                  "Memory Limit (KB) = " & lngMemoryLimit & vbNewLine & _
                  "Expiration Timeout (minutes) = " & lngExpirationTimeout & vbNewLine & _
                  "Call Limit = " & lngCallLimit & vbNewLine & _
                  "Activation Limit = " & lngActivationLimit

                SetMyApplicationRecycling = True  ' Successful end to procedure
                Exit For
            End If
        End With
    Next

    Set objApplication = Nothing
    Set objAppCollection = Nothing
    Set objCatalog = Nothing

    If Err.Number <> 0 Then
        MsgBox "Error # " & Err.Number & " (Hex: " & Hex(Err.Number) _
        & ")" & vbNewLine & Err.Description 
        Exit Function
    End If
End Function