错误-拒绝访问-部署到azure应用程序服务

htrmnn0y  于 2021-06-21  发布在  Kudu
关注(0)|答案(2)|浏览(485)

我们通过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方面,因为我们没有在项目中做任何更大的更改。有人有相同/类似的问题吗?

blmhpbnm

blmhpbnm1#

我们也有同样的问题,经过调查我们发现:
azure应用了新的“dotnet”版本3.1.301,而此版本的sdk抛出了该错误(您的版本可以通过命令“dotnet--version”进行检查)
通过命令“dotnet--list-sdk”,您可以看到所有已安装的sdk
然后我们简单地使用了以前的版本(在我们的例子中是v3.1.202)
最简单的方法是通过global.json来判断dotnetsdk的确切版本
示例:global.json

{
  "sdk": {
    "version": "3.1.202"
  }
}

文件必须在“工作目录”中,并且kudu脚本在这里有工作目录d:\home\site\repository
当您在以前版本的dotnetsdk上部署正常时,这肯定会有所帮助。

lh80um4z

lh80um4z2#

这个问题也可能发生在其他情况下,因为sdk安装为admin(例如,如果与sudo一起安装)。在这种情况下,卸载sdk并以非管理员用户身份安装它可以帮助解决问题。您可以使用此脚本为非管理员用户安装。
e、 g(在ubuntu 20.04上测试):

$ wget https://dot.net/v1/dotnet-install.sh
$ chmod +x dotnet-install.sh
$ ./dotnet-install.sh -c Current

添加到路径并验证:

$ echo "export PATH=$HOME/.dotnet:$PATH" >> ~/.bashrc
$ exec bash
$ dotnet --version
3.1.402

注意:执行此操作后,您可能会遇到一个错误:无法在“/tmp/nugetscratch/lock”上获取锁文件访问权限,然后您可以删除它并继续。

sudo rm -r /tmp/NuGet*

相关问题