AzureDevOps错误集合
1.无法加载压缩例程
权限的问题,似乎已经解决了,但是出现了新的问题,因为我电脑重启过了,所以再次打开这个,出现了无法加载压缩历程的问题,不知道什么原因。
伴随的并发症是,我无法创建项目了。
微软来人了:回复地址
虽然回复的很慢,但是起码回复了啊。
我找日志,但是没有相关日志
只找到了浏览器中的错误。
创建项目也创建不了,等了很长时间,还是创建不了,后来我关闭了浏览器,再次打开,之后创建同名的项目,却提示我项目已经存在,但是实际上项目列表里面根本就没有。
最后,官网的大大,竟然建议我重新安装。
好吧,还是重装好了。重装的时候,只要数据库还在,就可以恢复自己的git仓库。
(1) 选择配置选项
(2) 选择应用层缓存文件夹
(3) 评审
(4) 就绪检查
(5) 配置成功
(6) 最后真的解决问题了,而且git仓库也在。
我怀疑是不是只要修改了管理员的用户名或者是密码,就要重新安装一遍这个软件,因为我在新的电脑上也是因为修改了管理员的密码,导致了无法加载基础历程,进而重装了AzureDevops,这个不是偶然,不是偶然的问题,一定是官方的bug啊。
2.无法连接SQL Server数据库
也是因为我使用了test账户安装了AzureDevops,后来我开启了Administrator账户,使用Administrator账户登录后,管理控制台就无法连接数据库了。
提示说,指定正确的实例,该去哪里去指定正确的实例呢?
(1) 这里我采用了先切换到登录时候安装时候的用户,连接数据库,然后在安全性上,添加登录名,将Administrator登录添加进去,然后退出test账户,用Admministrator登录系统,这个时候就可以用Administrator连接数据库了。这也是一个曲线救国的策略啊。
(2) 虽然数据库管理工具可以连接服务器了,但是无法连接数据库,致使AzureDevops还是无法连接数据库。查看连接字符串:Data Source=DESKTOP-TEU1AUG;Initial Catalog=AzureDevOps_Configuration;Integrated Security=True;Encrypt=False
最后的解决办法,还是登录以前安装sql server时的用户,然后连接数据库服务器,然后打开数据库AzureDevOps_DefaultCollection和AzureDevOps_Configuration,在 安全性->用户 这里,将要登陆的Administrator添加进去,然后在重新回到Administartor登录系统。
(3) 数据库虽然可以打开了,但是又出现了新的问题,那就是打开AzureDevops出现了数据库连接错误。
难道就没有一劳永逸的方法吗?
最后问题终于还是让我解决了,主要还是用户权限的问题。在上一步添加Administrator用户的时候,也要赋予相应的db_owner权限,才可以。重新以test登陆系统,然后连接服务器,打开数据库AzureDevOps_DefaultCollection和AzureDevOps_Configuration,选择安全性->用户->Administrator->右键属性->成员身份这里->选择dbo_owner就好了。
总结起来,安装的时候不要选择以windows身份验证,选择使用sql server身份验证最好了。
3.数据库中多了几个数据库
不知道程序哪里出现了问题,数据库服务器上出现了删掉就好了。
4.无法使用ssh
安装AzureDevops之后,总是无法使用ssh命令。
1 | ## 测试端口 |
通过netstat命令,发现22端口被打开了。
但是通过telnet命令,却无法连接
这个时候,查看一下计算机管理->服务->Azure DevOps Ssh Service 这个服务有没有启动,没有启动,要解决错误后重新启动。
(2) 上面的服务已经启动了,还是报这个错误。还有一个重要的原因,就是因为重新安装的AzureDevops,和通过旧的数据库还原回来的数据,但是在备份和还原的时候没有将ssh密钥备份和还原回来,所以你可以看到在新的服务器上明明没有任何一个ssh密钥,但是增加的时候,却增加不上。就算不增加新的,就是这个密钥已经存在了,但是删除不了,也添加不上,所以有些客户端的ssh密钥还是可以使用,所以会很奇怪。
这种时候,最好就是使用重新生成ssh密钥,在AzureDevopsServer上的安全->ssh密钥上,重新设置一下ssh密钥,一般就可以了。
思考
出现这种情况的原因,是因为AzureDevops不允许两个不同的用户添加同一个ssh密钥,也就是说如果一个密钥已经在一个用户下面增加过了,那么其他用户不用增加这个密钥也可以使用这个密钥正常的访问服务器。所以,我换一台服务器,即便我用户名相同,但是也使用的是不同的域,所以就被判定为不同的用户了,自然也就不能看到先前添加的密钥了。同样的,再次添加这个密钥,也就被被判断已经存在了,不允许增加重复的密钥。
如果想要清理所有的用户,这个好像没有地方,因为AzureDevops是通过windows进行的账号管理,简直恶心透了,添加的用户只能在windows上添加,而不能在管理控制台中直接添加,正常的思维不应该是管理控制台能管理所有的用户吗,和gitlab一样,使用超级管理员登录,就可以管理其他的用户,然后也可以修改其他用户的账号密码,和计算机的账号密码完全隔离开来,而AzureDevops完全和Windows的账号体系绑定到一起了,简直是丧心病狂啊。
1.win10 开启ssh服务,远程vim
2.cannot clone the source code because vsts permission
3.使用微软的VSTS推送项目代码到远程失败报错:Git failed with a fatal error. fatal: repository not found
5.代理池无法运行命令行
问题出现的原因,就是我在安装了代理池之后,运行了很长一段时间之后,安装了nvm和nodejs,但是在配置部署过程的时候,无论选择是在代理池上运行cmd程序还是PowerShell脚本,最后都会部署失败。但是我在安装了代理池的机器上的命令行中,直接运行:nvm -v 命令,确实可以找到相关命令的,但是在AzureDevops页面中运行,就是回报找不到相关的命令。
在我使用命令行进行操作的时候,在代理服务器上,我已经修改了环境变量,将node从v14.17.0升级到了v16.14.2,虽然直接操作代理服务器的命令行,可以显示最新的node版本,但是使用命令行工具的时候,还是提示使用的是旧的node版本。
经过多次尝试,最终找到了解决方法,
(1) windows上解决问题
其实就是在你安装了新的命令之后,就算配置了环境变量,也要在计算机管理里面,重新运行Agent服务,这样Agent才能识别新添加的服务和环境变量。
比如我在环境变量Path中新添加了 %MAVEN_HOME%\bin,为了在命令行中使用mvn命令,就要重新启动Agent服务。这样再次部署的时候,就不会出现问题了。
(2) linux上解决问题
如果时linux上的代理,解决问题的话,我觉得有点不可思议,无论是我重启svc.sh服务,还是重新启动电脑,都无济于事。
最后我是重新配置了代理,才解决了无法识别环境变量的问题。
但是有一个细节值得关注,就是在使用:./svc.sh status的时候,有一个 runsvc.sh,加载了.path这个路径,可以查看runsvc.sh的源码,其实是创建了一个.path文件,里面保存了当前的环境变量。
如果那么就可以直接修改这个文件,然后重新启动代理
1 | ## 停止 |
6.下载项目失败: System.AggregateException: One or more errors occurred.
在很长一段时间内,AzureDevops都运行的很好,但是突然有一天,出现了无法自动部署的问题,但这之前,我没有修改服务器的任何配置。查看部署日志,无论是任何项目,都出现了:(The HTTP request timed out after 00:01:40.) —> System.TimeoutException: The HTTP request timed out after 00:01:40. —> System.Threading.Tasks.TaskCanceledException: A task was canceled.
根据参考资料,我添加了如下的环境变量,似乎是解决了问题,但也不一定,还是偶尔有问题。
1 | Windows: |
1.VSTest Task Fails with System.TimeoutException: The HTTP request timed out after 00:01:40 (只是一个讨论题,但是没有给出具体的解决方法)
2.microsoft/azure-pipelines-agent (这里提示添加环境变量VSTS_HTTP_RETRY和VSTS_HTTP_TIMEOUT)
3.System.TimeoutException: The HTTP request timed out after 00:01:40
7.无法登录web端管理控制台
这个问题出现的也是非常的莫名奇妙,在AzureDevops正常运行了多个月之后,打开web控制台,在输入用户密码之后,总是登录不上,然后使用ssh连接,也提示没有了权限。
【尝试方法】
打开受访者的guest权限
(1) 开始–运行–gpedit.msc
(2) windows设置—安全设置–本地策略–安全选项–右边找到’’网络访问:本地帐户的共享和安全模式”双击改成”经典:本地用户自己的身份验证”(若是出于安全上的考虑,这一项建议设置成仅来宾,若是不禁用Guest帐户的话,不影响以来宾身份访问)
【如果不行继续】
(3) windows设置—安全设置–本地策略–用户权利指派–在右边找到’’拒绝从网络访问这台计算机’’双击打开,把里面的guest帐户删除
(4) windows设置—安全设置–本地策略–安全选项–右边找到’’帐户:’’使用空白密码的本地用户只允许进行控制台登陆”把它设置为”禁用”(若是出于安全上的考虑,此项也建议开启,不影响来宾身份访问此计算机,只是影响无密码的远程桌面)
(5) 修改注册表.方法如下: 对方在注册表里做过一些修改如下:开始 运行regedit回车,找到下列路径
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa,右边RestrictAnonymous的值改为0。该项值为0时是启用匿名访问,值1时是禁止匿名访问。
【解决方法】
重启服务器,然后查看系统服务中的两个AzureDevops的服务是否以正确的权限运行。(实际上,我忘记了到底是怎么解决的了。)
8.创建发布之后无法执行
这个问题,就是我创建了一个发布,但是一直处于排队状态,排队一个小时了,就是无法执行,不知道为什么。
【尝试方案】
(1) 修复安装包
我甚至都重新修复了AzureDevops,但是还是不行。
【解决方法】
尝试了很多,想了很多,都是不行的,后来,进行数据库备份的时候,冒出来了一个登录用户无法对文件夹进行操作的错误。
于是我将服务中的Azure DevOps Server这个服务的登录用户,换成了Administrator,具有管理员权限的用户,然后停止服务,重新启动,最后果真可以执行完整备份了。同时,发布也可以执行了。有点小激动啊。
1.管道运行故障排除 管网关于管道故障的排查,但是没有一项符合我的。