2013-04-30 75 views
1

我有以下问题:
如何从C#代码或命令行脚本配置应用程序回收设置?
(请参见下面的截图) 我没有成功找到合适的.NET属性
您的帮助将是非常有价值的
预先感谢从代码/命令行设置COM +组件的应用程序回收设置

enter image description here

+0

谢谢回复。 Y,我需要在安装过程中将COM +组件注册到设置中。如果它可以从蝙蝠完成,那么它就可以。 – 2013-05-01 06:22:43

+0

感谢您的链接。我尝试了MSDN文章中的示例代码,但运行后,设置未发生更改。我是否需要执行更多操作(保存,提交等)?谢谢 – 2013-05-01 12:53:13

+0

我修改它为VBScript,它已经工作。谢谢 – 2013-05-02 15:17:58

回答

1

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

COMAdmin为以编程方式设置COM +应用程序的性能的方法。请参阅Configuring COM+ Application Recycling Values MSDN页面。该页面具有用于配置应用程序回收属性的示例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 
相关问题