首页 > 解决方案 > 无法使用 Process.Start() 启动 bat 文件

问题描述

我有一个带有文件夹监视程序的 Windows 服务,它应该调用一个 bat 文件,但它不运行该文件。我的服务日志中没有任何错误,系统日志中也没有关于执行尝试的任何条目。它适用于本地托管,但不适用于服务器。

工作人员服务在事件触发时调用应用程序的代码(其他尝试已评论):

ProcessStartInfo pi = new ProcessStartInfo() {
    WorkingDirectory = Path.GetDirectoryName(_appPath),
    FileName = _appPath
//Verb = "runas",
//Domain = "WORKGROUP",
//UserName = adminAccountName,
//Password = StaticHelper.ToSecureString(pWordString),
};
Process.Start(pi);

.bat 文件

@echo The test script was run
pause

我已经验证了“系统”用户具有访问权限,因此它不应该是权限问题,除非除了调整文件/文件夹安全设置之外还有其他问题。如果它是我在 ProcessStartInfo 中需要的东西,我还没有找到它。大多数堆栈帖子和文章都是通过设置 WorkingDirectory 来修复的。我尝试在“WORKGROUP”域上传递凭据,但这不起作用(Win32Exception (5): Access is denied)。我很感激任何帮助。

标签: windows-servicesbackgroundworkerasp.net-core-3.1

解决方案


推荐阅读