我希望我的 ASP.NET 页面能够脱壳并执行 git 命令。我将命令放在一个 bat 文件中,该文件有效:
REM cd to the git repo folder
cd c:\temp\mygitrepo
"c:\Program Files\Git\Bin\git.exe" show c090dc4b8b1b3512c1b5363c371e21d810d02f54 -- myfile.txt
如果我从 cmd 提示符运行我的 .bat 文件,没问题。如果我使用 System.Diagnostics.Process.Start 运行它,我会收到此错误:
请求 RUNTIME_PREFIX,但前缀计算失败。使用静态回退
错误来自这个 git 文件:http: //github.com/git/git/blob/master/exec_cmd.c
我使用完全相同的技术来运行 svn.exe 命令,没问题。
编辑 1:从这里的线程我了解到 msysgit 将一些文件安装在与当前用户我相关的位置,而不是所有用户。IIS Web 服务器正在另一个用户帐户下运行。我尝试将一些引起我注意的 git 文件(例如 .gitconfig)复制给其他用户(在文档和设置中)。没运气。因此,我将重点转移到让 IIS 在启动 git 命令时模拟我。