组件服务、运行进程、计划回收

组件服务、运行进程、计划回收

我有一个 Windows Server 2003 SBS SP2 盒子。

它托管我们的业务应用程序。

大约每周一次,整个办公室工作站上该应用程序的客户端都会收到“无法联系业务服务器”的错误消息。

此时我远程连接到SBS

运行“dcomcnfg”控制台根目录>组件服务>计算机>我的电脑>正在运行的进程。

在那里,我右键单击应用程序图标并运行回收。此过程完成后,我的客户端即可再次与服务器通信。

我的问题是,这可以自动每天回收一次吗?我是否需要通过命令行执行此操作并编写批处理脚本来执行此操作?如果是这种情况,命令行语句是什么?

如果可以在某个 GUI 中完成,您能给我指明正确的方向吗?

答案1

您可以使用 PowerShell 与组件服务目录交互,并将“RecycleLifetimeLimit”值设置为应用程序在回收之前应运行的分钟数:

$TargetAppName = "todbannersBiznezApp"

$ComCatalog = New-Object -ComObject COMAdmin.COMAdminCatalog
$ComCatalog.Connect("localhost")

$ComApps = $ComCatalog.GetCollection("Applications")
$ComApps.Populate()

foreach($App in $ComApps)
{
    if($App.Name -eq $TargetAppName)
    {
        # 30240 (21 days) is the maximum lifetime value
        # Let's set it to 1440 (24 hours) 
        $App.Value("RecycleLifetimeLimit") = 1440
        $ComApps.SaveChanges()
        break
    }
}

如果您愿意,您也可以从组件服务管理控制台执行此操作:

  1. 打开组件服务管理控制台(运行 -> comexp.msc
  2. 转到组件服务->计算机->我的电脑/本地主机
  3. 扩张COM+ 应用程序
  4. 右键单击您的业务应用程序并选择特性
  5. 切换到“池化和回收”选项卡
  6. 为应用程序配置所需的回收设置

相关内容