由于应用程序出现问题,必须隔一段时间重启其COM+应用程序才能解决。
请问如何用脚本或程序实现

解决方案 »

  1.   

    根本的解决办法是找到你程序的错误,而不是重新启动com+ service。
    如果你够幸运,可以在event log中看到dllhost出错时的纪录信息。如果提示你的dll有些unregistered的东西,那么你需要放相应的pdb,到你的_NT_SYMBOL_PATH指定的symbols目录。
      

  2.   

    这时候基本能看到你出错的地方。当然,最好的办法是你用adplus抓一下dump,然后windbg慢慢看。如果你认识M$的,可以提一个case。
      

  3.   

    如果你确实想重新启动你的com+ app,可以这么做:建立一个.net的console工程,引入COMAdmin这个com+组件(com+ 1.0 admin type library)
    然后搞这么一个方法:
    private void RestartComplusApplication(string appname){
    COMAdmin.ICOMAdminCatalog catalog = new COMAdmin.COMAdminCatalogClass();
    object collection = null;
    collection = catalog.GetCollection("Applications"); COMAdmin.ICatalogCollection col = (COMAdmin.ICatalogCollection)collection;
    col.Populate();
    COMAdminCatalogObject obj;

    for(int i=0;i<col.Count;i++)
    {
    obj = (COMAdminCatalogObject)(col.get_Item(i));
    if(appname.ToLower()==Convert.ToString(obj.Name).ToLower())
    {
    catalog.ShutdownApplication(appname);
    catalog.StartApplication(appname);
    break;
    }
    }
    }注意!里面的异常处理我都没有写,你自己慢慢添加吧!
      

  4.   

    如果你想查找COM+的代码错误,嘿嘿,我可以帮你做,少收点费用,中不?
    M$给我们找这种COM+错误,一个case是25K。偶可以对折,哈哈!Good luck!!!
      

  5.   

    我现在的任务是重启COM+
    我也想搞清楚最根本的BUG
    正像: juqiang(方枪枪(正在修炼伤心小箭))  说的那样 财力不可达 谢谢各位高手的指点
      

  6.   

    yeah,
    at first you should know why you want to reboot
      

  7.   

    to juqiang(方枪枪(正在修炼伤心小箭)) :
    能不能传授一点COM+ debug的经验,
    有没有那些工具可以用
      

  8.   

    按 juqiang(方枪枪(正在修炼伤心小箭))的方法,已经实现了COM+应用程序的重新启动。现在我想请教的是COM+ debug的方法。  分不够我可以再开贴 请高手们指教