Просто сообщаю, что я новичок в Linux и уже некоторое время пытаюсь опубликовать веб-сайт ASP.NET Core в Linux Ubuntu 18.04.
Я разработал тестовый проект в ASP.NET Core 2.1 в Visual Studio 2017 и пытаюсь опубликовать его в Ubuntu 18.04.
Я выполнил следующие действия, описанные в этой статье:
https://blog.todotnet.com/2017/07/publishing-and-running-your-asp-net-core-project-on-linux/
Вместо публикации тестового сайта, описанного в статье, я хочу опубликовать свой собственный сайт. Я публикую веб-сайт в Visual Studio 2017.
После публикации сайта в рабочем каталоге в Linux у меня есть следующие файлы:
- Docker.DotNet.dll
- TestCoreWebsite1.deps.json
- TestCoreWebsite1.dll
- TestCoreWebsite1.pdb
- TestCoreWebsite1.runtimeconfig.json
- TestCoreWebsite1.Views.dll
- TestCoreWebsite1.Views.pdb
- web.config
Когда я набираю команду в терминале Linux "journalctl -xe", я получаю следующую ошибку:
realpath(): Permission denied
System.UnauthorizedAccessException: Access to the path '/var/www/.dotnet' is denied. ---> System.IO.IOException: Permission denied
--- End of inner exception stack trace ---
at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOpt
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at System.IO.File.Create(String path)
at Microsoft.Extensions.EnvironmentAbstractions.FileWrapper.CreateEmptyFile(String path)
at Microsoft.DotNet.Configurer.FileSentinel.Create()
at Microsoft.DotNet.Configurer.DotnetFirstTimeUseConfigurer.Configure()
at Microsoft.DotNet.Cli.Program.ConfigureDotNetForFirstTimeUse(INuGetCacheSentinel nugetCacheSentinel, IFirstTimeUseNot
at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryClient)
at Microsoft.DotNet.Cli.Program.Main(String[] args)
tcore.service: Main process exited, code=exited, status=1/FAILURE
tcore.service: Failed with result 'exit-code'.
Он говорит мне, что "/var/www/.dotnet" запрещен. На самом деле этот путь даже не существует.
Что я должен сделать, чтобы решить эту проблему?
Странно, следуя инструкциям этой статьи, он все еще не работает.
leo@leo-virtual-machine:/var/www$ dotnet --info
.NET Core SDK (reflecting any global.json):
Version: 2.1.401
Commit: 91b1c13032
Runtime Environment:
OS Name: ubuntu
OS Version: 18.04
OS Platform: Linux
RID: ubuntu.18.04-x64
Base Path: /usr/share/dotnet/sdk/2.1.401/
Host (useful for support):
Version: 2.1.3
Commit: 124038c13e
.NET Core SDKs installed:
2.1.401 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.3 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.3 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.0.0-preview1-002111-00 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.3 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.3 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
leo@leo-virtual-machine:/var/www$ dotnet --version
2.1.401
Есть ли проблема, потому что у меня установлено несколько версий с установленными средами .NET Core?