wbadmin命令无法从Windows服务运行

基里尔
string path = "D:";
string wbadminPath = Environment.SystemDirectory + @"\wbadmin";
string wbadminEvent = "start systemstatebackup -backupTarget:" + path + " -quiet";

        try
        {
            int exitCode = 0;
            ProcessStartInfo start = new ProcessStartInfo(wbadminPath, wbadminEvent);
            using (Process proc = Process.Start(start))
            {
                proc.WaitForExit();
                exitCode = proc.ExitCode;                    
            }
        }

如果我在控制台应用程序中执行此代码,则-它可以工作。如果我在Windows Service中执行此代码,则会出现此错误:

Microsoft BLB备份的命令行界面已停止工作

问题签名:问题事件名称:APPCRASH应用程序名称:wbadmin.exe应用程序版本:6.0.6001.18000应用程序时间戳:47918aed故障模块名称:kernel32.dll故障模块版本:6.0.6002.18327故障模块时间戳:4cb73436异常代码:c0000142异常偏移量: 00009f7d操作系统版本:6.0.6002.2.2.0.274.10语言环境ID:1033附加信息1:9d13附加信息2:1abee00edb3fc1158f9ad6f44f0f6be8附加信息3:9d13附加信息4:1abee00edb3fc1158f9ad6f44f0f6be8

史蒂夫·伯恩

好的,所以我知道我要迟到了,但是希望其他人可以从中受益。

Windows服务无法通过GUI与任何东西交互或需要用户交互。基本上,当您调用Process.Start(start)时,它将尝试打开服务无法执行的CMD窗口。您可以使用类似:

            start.UseShellExecute = false;
            // Do not create the black window.
            start.CreateNoWindow = true;//This stops the GUI

但是,值得注意的是,我尝试了几个小时才能使此特定命令正常工作,但未能成功。经过数小时的工作和研究,我最终放弃了整个构想。通常,您可以使用.CreateNoWindow从服务中运行CMD命令,但是在这种情况下它似乎不起作用(无法找到WBADMIN进程)。如果以后我发现任何新的东西,我会进行更新。

这是一个讨论为什么服务无法再访问GUI的话题

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章