作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Process.Start
方法的实现在我的 Windows 7 Professional 64 位开发机器上失败,同时在我们的 Windows 2008 测试环境中工作。
const string CommandDirectory = @"C:\Program Files (x86)\Command";
var process = new Process
{
StartInfo =
{
FileName = string.Format("{1}{0}MyExecutable.exe", Path.DirectorySeparatorChar, CommandDirectory),
RedirectStandardError = true,
RedirectStandardOutput = true,
UseShellExecute = false,
UserName = userName,
Password = securePassword,
Domain = "MYDOMAIN",
},
};
process.Start();
在 process.Start();
处,我在开发机器上遇到以下异常:
System.ComponentModel.Win32Exception occurred
HResult=-2147467259
Message=The directory name is invalid
Source=System
ErrorCode=-2147467259
NativeErrorCode=267
StackTrace:
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
InnerException:
我已经尝试了一些事情:
我已确保我分配给进程的用户帐户对可执行文件所在的路径以及 %systemroot% 位置具有完全权限。我还确保用户在本地安全策略中具有“身份验证后模拟客户端”权限。
我已尝试将 ProcessStartInfo.WorkingDirectory
显式设置为 CommandDirectory
。当我这样做时,可执行文件启动但立即崩溃,没有任何解释。
我通过删除 UserName
、Password
和 Domain
属性在我的开发机器上实现了这个功能,这样它使用我的个人凭证。但这对于部署来说并不实用。这让我觉得问题与凭据和权限有关。
谁能告诉我做错了什么?
最佳答案
@Julien Lebosquain 的评论让我找到了答案。我需要以我想模拟的用户身份在本地登录一次。这创建了默认用户文件夹。
据推测,我调用的可执行文件需要写入 AppData 或用户目录的另一个子文件夹。
关于c# - Process.Start异常: "The directory name is invalid",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22456625/
我是一名优秀的程序员,十分优秀!