我们通过kudu脚本在azure中使用自动部署过程,到今天为止,我们在azure部署中心中看到了奇怪的错误:
命令dotnet publish(以及“dotnet build”)返回:
MSBUILD : error MSB1025: An internal failure occurred while running MSBuild.
Unhandled exception. System.ComponentModel.Win32Exception (5): Access is denied.
System.ComponentModel.Win32Exception (5): Access is denied.
at System.Diagnostics.Process.set_PriorityClassCore(ProcessPriorityClass value)
at System.Diagnostics.Process.set_PriorityClass(ProcessPriorityClass value)
at Microsoft.Build.CommandLine.MSBuildApp.Execute(String[] commandLine)
at Microsoft.Build.CommandLine.MSBuildApp.Main(String[] args)
at System.Diagnostics.Process.set_PriorityClassCore(ProcessPriorityClass value)
at System.Diagnostics.Process.set_PriorityClass(ProcessPriorityClass value)
at Microsoft.Build.CommandLine.MSBuildApp.Execute(String[] commandLine)
Failed exitCode=-532462766, command=dotnet publish "D:\home\site\repository\
...
细节:
有一个由kudu脚本自动部署的过程
应用程序是.net核心应用程序,.csproj的目标框架是:netcoreapp2.2
问题可能会在azure方面,因为我们没有在项目中做任何更大的更改。有人有相同/类似的问题吗?
2条答案
按热度按时间blmhpbnm1#
我们也有同样的问题,经过调查我们发现:
azure应用了新的“dotnet”版本3.1.301,而此版本的sdk抛出了该错误(您的版本可以通过命令“dotnet--version”进行检查)
通过命令“dotnet--list-sdk”,您可以看到所有已安装的sdk
然后我们简单地使用了以前的版本(在我们的例子中是v3.1.202)
最简单的方法是通过global.json来判断dotnetsdk的确切版本
示例:global.json
文件必须在“工作目录”中,并且kudu脚本在这里有工作目录d:\home\site\repository
当您在以前版本的dotnetsdk上部署正常时,这肯定会有所帮助。
lh80um4z2#
这个问题也可能发生在其他情况下,因为sdk安装为admin(例如,如果与sudo一起安装)。在这种情况下,卸载sdk并以非管理员用户身份安装它可以帮助解决问题。您可以使用此脚本为非管理员用户安装。
e、 g(在ubuntu 20.04上测试):
添加到路径并验证:
注意:执行此操作后,您可能会遇到一个错误:无法在“/tmp/nugetscratch/lock”上获取锁文件访问权限,然后您可以删除它并继续。