2017-10-19 16 views
1

J'ai une application .NET Core 2.0 que je veux exécuter sur un serveur Linux.L'application .NET Core 2.0 sous Linux avec superviseur ne peut pas s'exécuter en raison de ArgumentNullException

Tout est mis en place correctement et si je cours dotnet MyApplication.dll manuellement alors l'application commence et aller à l'URL dans le navigateur fonctionne très bien.

Je veux démarrer automatiquement l'application avec supervisor comme j'en ai vu d'autres en ligne.

Le superviseur est installé et configuré pour exécuter mon application, mais l'application .NET ne peut pas démarrer et je peux voir les erreurs dans le journal des erreurs supervisor.

System.ArgumentNullException: Value cannot be null. 
Parameter name: path1 
    at System.IO.Path.Combine(String path1, String path2) 
    at Microsoft.DotNet.Configurer.CliFallbackFolderPathCalculator.get_DotnetUserProfileFolderPath() 
    at Microsoft.DotNet.Configurer.FirstTimeUseNoticeSentinel..ctor(CliFallbackFolderPathCalculator cliFallbackFolderPathCalculator) 
    at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryClient) 
    at Microsoft.DotNet.Cli.Program.Main(String[] args) 

configuration supervisor comme suit:

[program:myapplication] 
command=/usr/bin/dotnet /var/www/myapplication.mydomain/MyApplication.dll 
directory=/var/www/myapplication.mydomain 
autostart=true 
autorestart=true 
stderr_logfile=/var/log/websites/myapplication.mydomain.err.log 
stdout_logfile=/var/log/websites/myapplication.mydomain.out.log 
environment=ASPNETCORE_ENVIRONMENT=Production 
user=myuser 
stopsignal=INT 

dotnet --info comme suit:

.NET Command Line Tools (2.0.0) 

Product Information: 
Version:   2.0.0 
Commit SHA-1 hash: cdcd1928c9 

Runtime Environment: 
OS Name:  ubuntu 
OS Version: 16.04 
OS Platform: Linux 
RID:   ubuntu.16.04-x64 
Base Path: /usr/share/dotnet/sdk/2.0.0/ 

Microsoft .NET Core Shared Framework Host 

    Version : 2.0.0 
    Build : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d 

aimerions obtenir ce travail!

également posté cette question sur GitHub here

Répondre

1

Trouvé que le correctif pour c'est de définir la configuration du superviseur à ce qui suit:

command=/usr/bin/dotnet MyApplication.dll 
directory=/var/www/myapplication.mydomain 

Je suppose que le répertoire est la définition du répertoire de travail courant du chemin d'accès à la DLL était faux

+1

Cela se produira également si le nom de fichier dll dans la commande est faux aussi, comme Iv'e vient de le découvrir :-) – shawty