导出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

任何建议吗?

导出svn文件的进程挂起Process. start()

我做了类似的事情。试试以下命令:

更改:startInfo。参数= svnUrl +" "+ srcFolder+ " "+ usr+" "+psw;

to: startInfo。参数=字符串。格式("{0}'"{1}'"——用户名{2},{3}密码",svnUrl, srcFolder, usr, psw);

我假设你的userr和psw变量不包含subversion的参数信息。此外,我的目的地包括文件名(我无法看到完整的命令行,因为它被截断了),还包含空格,所以我不得不将其括在引号中。你的svnUrl应该有"%20"来代替空格(同样,完整的URL是不可见的)。