2013-04-30 74 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 
相關問題