SVN 进程在 Windows 服务器 R2 上挂起

SVN processes hang on Windows Server R2

我正在尝试自动更新服务器上的一些数据。 Windows 服务器 2008 R2。 有 asp.net 个核心 2.1 应用程序具有以下代码

        var timeoutMs = 5000;
        var process = new Process();
        process.StartInfo.FileName = exePath;
        process.StartInfo.Arguments = arguments;            
        process.StartInfo.UseShellExecute = false;
        process.StartInfo.CreateNoWindow = true;
        process.Start();
        return process.WaitForExit(timeoutMs));

棘手的部分来了。

当我使用 exePath=svn.exe arguments=update "someWorkingFolderPath" 时,进程挂起并且超时后 returns false(从 cmd 定期更新需要几毫秒)

然后存储库损坏并锁定自身(因为更新没有正确退出),当我 运行 'svn update' 在 cmd 上它告诉我调用 svn 清理。

!和!当存储库处于这种锁定状态时,具有相同参数的进程不会挂起(因为相同的 svn 错误),直到我 运行 清除工作文件夹上的锁。然后又挂了。

调用 'svn log "folderPath"' 也会挂起进程。任何时候

如您所见,我没有重定向任何流,我可以 运行 从 cmd 手动成功地执行所有这些命令。应用程序池从我用于 cmd 的同一本地管理员身份开始(不完美,我知道,但这不是主题)。我正在使用 TortoiseSVN 附带的 svn 命令行工具。

什么可能导致此类问题?

几天后我发现了问题出在哪里以及如何解决。 实际上是一个简单的错误,但它仍然让我挣扎,所以以防万一我 post 这个答案

在 运行 "svn auth" 从我的服务中,我了解到没有加载凭据缓存。在 IIS7 "Load user profile" 的应用程序池中有设置,在我的情况下它被设置为 false。将其设置为 true(并重新启动池)后,svn 加载了我的凭据缓存并且一切正常。

我不知道为什么半小时后 svn 在 "svn update" 没有凭据缓存时没有超时,如果有正确的错误消息,我会更快地解决它