0

this works fine,

webadmin@sandbox:/www/web/prod/prereg.example.org/prereg-sample$ dotnet restore
  Restoring packages for /www/web/prod/prereg.example.org/prereg-sample/WebApplication/WebApplication.csproj...
  Restoring packages for /www/web/prod/prereg.example.org/prereg-sample/WebApplication/WebApplication.csproj...
  Restore completed in 558.64 ms for /www/web/prod/prereg.example.org/prereg-sample/WebApplication/WebApplication.csproj.
  Lock file has not changed. Skipping lock file write. Path: /www/web/prod/prereg.example.org/prereg-sample/WebApplication/obj/project.assets.json
  Restore completed in 2.12 sec for /www/web/prod/prereg.example.org/prereg-sample/WebApplication/WebApplication.csproj.

  NuGet Config files used:
      /home/webadmin/.nuget/NuGet/NuGet.Config

  Feeds used:
      https://api.nuget.org/v3/index.json
webadmin@sandbox:/www/web/prod/prereg.example.org/prereg-sample$ dotnet publish
Microsoft (R) Build Engine version 15.1.548.43366
Copyright (C) Microsoft Corporation. All rights reserved.

  WebApplication -> /www/web/prod/prereg.example.org/prereg-sample/WebApplication/bin/Debug/netcoreapp1.1/WebApplication.dll
webadmin@sandbox:/www/web/prod/prereg.example.org/prereg-sample$ cd WebApplication/
webadmin@sandbox:/www/web/prod/prereg.example.org/prereg-sample/WebApplication$ dotnet run
Hosting environment: Production
Content root path: /www/web/prod/prereg.example.org/prereg-sample/WebApplication
Now listening on: http://sandbox.example.lab:5000
Application started. Press Ctrl+C to shut down.

here is the result

[sandbox]/etc/systemd/system> ps aux |grep dotnet
webadmin 29736  1.2  0.5 3286936 48576 pts/4   SLl+ 13:19   0:00 dotnet run
webadmin 29775  1.5  0.5 21251244 42736 pts/4  SLl+ 13:19   0:00 dotnet exec /www/web/prod/prereg.example.org/prereg-sample/WebApplication/bin/Debug/netcoreapp1.1/WebApplication.dll

but when I add this to systemd which means I try to make it behave as a linux service, to be started automatically for example.

with the following configuration

[Unit]
    Description=prereg application

    [Service]
    WorkingDirectory=/www/web/prod/prereg.example.org/prereg-sample/WebApplication/bin/Debug/netcoreapp1.1/
    ExecStart=/usr/bin/dotnet /www/web/prod/prereg.example.org/prereg-sample/WebApplication/bin/Debug/netcoreapp1.1/WebApplication.dll
    Restart=always
    RestartSec=10                                          # Restart service after 10 seconds if dotnet service crashes
    SyslogIdentifier=prereg-sample
    User=webadmin
    Environment=ASPNETCORE_ENVIRONMENT=Production

    [Install]
    WantedBy=multi-user.target

I get this errors, do you have any ideas why does this happen?

[sandbox]/etc/systemd/system> systemctl start prereg-sample
[sandbox]/etc/systemd/system> systemctl status prereg-sample
prereg-sample.service - prereg application
   Loaded: loaded (/etc/systemd/system/prereg-sample.service; enabled)
   Active: failed (Result: start-limit) since Sat 2017-03-18 13:24:23 +04; 8s ago
  Process: 30080 ExecStart=/usr/bin/dotnet /www/web/prod/prereg.example.org/prereg-sample/WebApplication/bin/Debug/netcoreapp1.1/WebApplication.dll (code=killed, signal=ABRT)

[sandbox]/etc/systemd/system> journalctl -fu prereg-sample
-- Logs begin at Fri 2017-03-17 11:56:37 +04. --
Mar 18 13:24:23 sandbox.example.lab prereg-sample[30064]: at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)
Mar 18 13:24:23 sandbox.example.lab prereg-sample[30064]: at Microsoft.Extensions.DependencyInjection.ServiceProvider.<>c__DisplayClass16_0.<RealizeService>b__0(ServiceProvider provider)
Mar 18 13:24:23 sandbox.example.lab prereg-sample[30064]: at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
Mar 18 13:24:23 sandbox.example.lab prereg-sample[30064]: at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
Mar 18 13:24:23 sandbox.example.lab prereg-sample[30064]: at Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureStartup()
Mar 18 13:24:23 sandbox.example.lab prereg-sample[30080]: Unhandled Exception: System.IO.FileNotFoundException: The configuration file 'appsettings.json' was not found and is not optional. The physical path is '/www/web/prod/prereg.example.o...ppsettings.json'.
Mar 18 13:24:23 sandbox.example.lab prereg-sample[30080]: at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
Mar 18 13:24:23 sandbox.example.lab prereg-sample[30080]: at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
Mar 18 13:24:23 sandbox.example.lab prereg-sample[30080]: at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
Mar 18 13:24:23 sandbox.example.lab prereg-sample[30080]: at WebApplication.Startup..ctor(IHostingEnvironment env) in /www/web/prod/prereg.example.org/prereg-sample/WebApplication/Startup.cs:line 23
1

I am so stupid,

The configuration file 'appsettings.json' was not found and is not optional.

means that the folder is incorrectly set, it should be /publish, the appsettings.json is there. and it worked. And the dev didn't add the config file that contains MongoDb connection string.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.