导出svn文件的进程挂起Process. start()
本文关键字:Process start 挂起 进程 svn 文件 导出 | 更新日期: 2023-09-27 18:09:18
我尝试执行。cmd从SVN导出文件,它手动在我的本地机器(WS2003 SP2 IIS identity: local System)中工作,但在执行服务器(相同配置)中失败。
我执行的脚本是:
echo.%Date%-%Time%- Username %username%>>c:'vpcheckcode'logsvn.txt
svn export %svnUrl% %srcFolder% --force --username %usr% --password %psw%
如果我尝试简单地复制一个文件,而不是svn,它可以工作。
当我手动执行它时,它记录我的用户并导出文件。在开发PC上,它不记录用户,但它工作,在执行服务器上,它不记录用户,它不工作。
我尝试以这种方式执行。cmd:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.FileName = strFileName;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = svnUrl + " " + srcFolder+ " " + usr+" "+psw;
using (Process exeProcess = Process.Start(startInfo))
{
pid = exeProcess.Id;
EventLog.WriteEntry("VPCheckCodeSrvDll.ExecuteScriptSVN", "avviato pid svn: " + pid.ToString(), EventLogEntryType.Warning);
if (!exeProcess.WaitForExit((int)_svnExportTimeout))
{
exeProcess.Kill();
进程挂起,直到它被杀死。
C:'Documents and Settings'myuser>tlist 4980
4980 cmd.exe
CWD: c:'windows'system32'inetsrv'
CmdLine: cmd /c ""C:'ANALISI'000000-xx-v90'SVN'svnExport.cmd" https://svn.mysite.local/repos/HA/branches/H
VirtualSize: 11332 KB PeakVirtualSize: 15492 KB
WorkingSetSize: 1832 KB PeakWorkingSetSize: 1848 KB
NumberOfThreads: 1
2704 Win32StartAddr:0x4ad07670 LastErr:0x000000cb State:Waiting
5.2.3790.3959 shp 0x4AD00000 cmd.exe
5.2.3790.4937 shp 0x7C800000 ntdll.dll
5.2.3790.5069 shp 0x77E40000 kernel32.dll
7.0.3790.3959 shp 0x77BA0000 msvcrt.dll
5.2.3790.4455 shp 0x7D1E0000 ADVAPI32.dll
5.2.3790.4759 shp 0x77C50000 RPCRT4.dll
5.2.3790.4455 shp 0x76F50000 Secur32.dll
5.2.3790.4033 shp 0x77380000 USER32.dll
5.2.3790.4396 shp 0x77C00000 GDI32.dll
5.2.3790.3959 shp 0x71BD0000 MPR.dll
5.2.3790.3959 shp 0x76290000 IMM32.DLL
任何建议吗?
我做了类似的事情。试试以下命令:
更改:startInfo。参数= svnUrl +" "+ srcFolder+ " "+ usr+" "+psw;
to: startInfo。参数=字符串。格式("{0}'"{1}'"——用户名{2},{3}密码",svnUrl, srcFolder, usr, psw);
我假设你的userr和psw变量不包含subversion的参数信息。此外,我的目的地包括文件名(我无法看到完整的命令行,因为它被截断了),还包含空格,所以我不得不将其括在引号中。你的svnUrl应该有"%20"来代替空格(同样,完整的URL是不可见的)。