SVN进程挂在Windows Server R2上



我正在尝试自动更新服务器上的一些数据。视窗服务器 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参数=更新"someWorkingFolderPath",进程挂起并在超时后返回 false(定期从 cmd 更新需要几毫秒(

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

!和!当存储库处于此锁定状态时,具有相同参数的进程不会挂起(因为相同的 svn errrot(,直到我运行清理以打破工作文件夹上的锁定。然后它又挂了。

调用 'svn log 'folderPath'' 也会挂起进程。随时

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

什么可能导致此类问题?

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

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

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

最新更新