Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >ASP.NET核心角应用程序无法在Ubuntu16.04上运行Nginx和Systemd

ASP.NET核心角应用程序无法在Ubuntu16.04上运行Nginx和Systemd
EN

Stack Overflow用户
提问于 2017-08-30 10:17:26
回答 1查看 3.4K关注 0票数 1

我有一个针对DotNet1.1.0的ASP.NET核心角度应用程序。

我在我的LinuxUbuntu16.04上安装了Nginx,并按照以下方式配置了nginx confog文件:

代码语言:javascript
代码运行次数:0
复制
server {
listen 80;
location / {
    proxy_pass http://localhost:5000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection keep-alive;
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}
}

和myapp.services文件如下:

代码语言:javascript
代码运行次数:0
复制
[Unit]
Description=Sample application.

[Service]

Type=simple
WorkingDirectory=/var/myappfolder
ExecStart=/usr/bin/dotnet /var/myappfolder/myapp.dll
#User=web

[Install]

WantedBy=multi-user.target

我用一个简单的示例应用程序测试了这个设置,它运行得很好。但是,一旦我将正确的应用程序部署到/var/myapp文件夹并配置

代码语言:javascript
代码运行次数:0
复制
systemclt start mywebsite
systemclt daemon_reload

然后检查

代码语言:javascript
代码运行次数:0
复制
systemclt status mywebsite

我知道这个错误:

jtrade.service -示例应用程序。加载: loaded (/lib/systemd/system/jtrade.service;禁用;供应商预置:已启用) Active: failed (结果: signal),自Wed 2017-08-30 18:08:08 UTC;9s前进程: 4640 ExecStart=/usr/bin/dotnet /var/jtrade/jtradep.dll (code=killed,signal=ABRT)主PID: 4640 (code=killed,signal=ABRT) 8月30日18:08:08 :08本地主机Microsoft.DotNet.Configurer.NuGetCacheSentinel.get_NuGetCachePath() dotnet4640: at 8月30日18:08:08 :08本地主机Microsoft.DotNet.Configurer.NuGetCacheSentinel.Exists() dotnet4640: at 8月30日18:08:08 :08本地主机Microsoft.DotNet.Configurer.DotnetFirstTimeUseConfigurer.ShouldPrimeNugetCache() dotnet4640: at 8月30日18:08:08 :08本地主机Microsoft.DotNet.Configurer.DotnetFirstTimeUseConfigurer.Configure() dotnet4640: at 8月30日18:08:08 localhost dotnet4640: at dotnet4640 nugetCacheSentinel) 8月30日18:08:08本地主机Microsoft.DotNet.Cli.Program.ProcessArgs(String[] dotnet4640: at ITelemetry telemetryClient 8月30日18:08:08本地主机dotnet4640: at Microsoft.DotNet.Cli.Program.Main(String[] args) 8月30日18:08:08本地主机systemd1: jtrade.service:主进程退出,状态=6/ABRT 8月30日18:08:08本地主机systemd1: jtrade.service: Unit进入失败状态。 8月30日18:08:08 :08本地主机systemd1: jtrade.service: Failed和结果‘信号’。

因此,我深入研究了如何用journalctl -u myappname调试这个错误,并获得了一些更有用的信息:

启动示例应用程序..。 8月31日05:13:34本地主机dotnet10290:未处理异常: System.InvalidOperationException: Required环境变量'HOME‘未设置。尝试设置“HOME”并再次运行操作。 8月31日05:13:34本地主机NuGet.Common.NuGetEnvironment.GetValueOrThrowMissingEnvVar(Func1 getValue, String name) Aug 31 05:13:34 localhost dotnet[10290]: at NuGet.Common.NuGetEnvironment.GetHome() Aug 31 05:13:34 localhost dotnet[10290]: at NuGet.Common.NuGetEnvironment.<>c.<.cctor>b\_\_12\_0() Aug 31 05:13:34 localhost dotnet[10290]: at System.Lazy1.CreateValue() dotnet10290: at 8月31日05:13:34 localhost dotnet10290:--从抛出异常的前一个位置开始的堆栈跟踪结束 8月31日05:13:34本地主机System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() dotnet10290: at 8月31日05:13:34本地主机dotnet10290: at System.Lazy`1.get_Value() 8月31日05:13:34本地主机dotnet10290: at dotnet10290文件夹) 8月31日05:13:34本地主机dotnet10290: at dotnet10290文件夹) 8月31日05:13:34本地主机dotnet10290: at dotnet10290设置) 8月31日05:13:34本地主机dotnet10290: at dotnet10290设置) 8月31日05:13:34本地主机Microsoft.DotNet.Configurer.NuGetCacheSentinel.get_NuGetCachePath() dotnet10290: at 8月31日05:13:34本地主机Microsoft.DotNet.Configurer.NuGetCacheSentinel.Exists() dotnet10290: at 8月31日05:13:34本地主机Microsoft.DotNet.Configurer.DotnetFirstTimeUseConfigurer.ShouldPrimeNugetCache() dotnet10290: at 8月31日05:13:34本地主机Microsoft.DotNet.Configurer.DotnetFirstTimeUseConfigurer.Configure() dotnet10290: at 8月31日05:13:34本地主机dotnet10290: at dotnet10290 nugetCacheSentinel) 8月31日05:13:34本地主机Microsoft.DotNet.Cli.Program.ProcessArgs(String[] dotnet10290: at ITelemetry telemetryClient) 8月31日05:13:34本地主机dotnet10290: at Microsoft.DotNet.Cli.Program.Main(String[] args) 8月31日05:13:34本地主机systemd1: jtrade.service:主进程退出,状态=6/ABRT 8月31日05:13:34本地主机systemd1: jtrade.service: Unit进入失败状态。 8月31日05:13:34本地主机systemd1: jtrade.service: Failed,其结果为“信号”。

在这里,如果我使用printenv来查看我的环境变量,我会发现HOME= /root

也许它应该被设置成别的什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-31 06:01:26

显然,我刚刚在.service文件中编写了Environment=HOME=/root,一切都开始工作了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45967246

复制
相关文章
this 指向4 — 事件处理函数中的 this
本文继续讨论 this 指向 问题,今天讨论: 事件处理函数中的 this 文末尾有关于this的面试题,可直接查看 0 1 事件处理函数中的 this 示例1: <button id="btnTest" onclick="console.log(this)">Test</button> <button id="btnTest2" onclick="(function(){console.log(this)})()"> Test2</button> 点击结果为: 示例2: //场景1 let
用户9914333
2022/07/22
8460
this 指向4  — 事件处理函数中的 this
js 中的构造函数,构造函数作用,构造函数和普通函数的区别
函数的定义方式: 1.声明式函数定义: function 函数名 (){};这种定义方式,会将函数声明提升到该函数所在作用域的最开头,也是就无论你在这个函数的最小作用域的那儿使用这种方式声明的函数,在这个作用域内,你都可以调用这个函数为你所用。 2.函数表达式:let fun = function(){}; 此方式定义的函数,只能在该作用域中,这段赋值代码执行之后才能通过fun()调用函数,否则,由于变量声明提升,fun === undefined。 3.new Function 形式: var fun1 = new Function (arg1 , arg2 ,arg3 ,…, argN , body );Function构造函数所有的参数都是字符串类型。除了最后一个参数, 其余的参数都作为生成函数的参数即形参。这里可以没有参数。最后一个参数, 表示的是要创建函数的函数体。
全栈程序员站长
2022/10/04
3.5K0
Python中的构造函数
Python中的构造函数是__init__函数。在Python中,子类如果定义了构造函数,而没有调用父类的,那么Python不会自动调用,也就是说父类的构造函数不会执行。
用户7886150
2020/12/20
1.7K0
java构造函数调用另一个构造函数_java中的构造函数
* 构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法
用户7886150
2021/04/29
4.5K0
Dom 事件处理函数
别人整理的,我顺手就给捏来了哈哈。很详细的一些事件,浏览器支持情况,以及详细的说明。在这里向整理者致敬。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr
练小习
2017/12/29
8480
虚函数中构造函数的调用顺序
1 /*曾经有段时间一直被构造函数中的虚函数所困扰,现在通过自己重新学习了一遍,标注一下容易忘记的知识*/ 2 #include<iostream> 3 using namespace std; 4 class Base0 5 { 6 public: 7 Base0(int var):var0(var) 8 { 9 cout<<"Construct base0"<<endl; 10 } ; 11 int var0; 12 void fun()
Gxjun
2018/03/22
3.5K0
虚函数中构造函数的调用顺序
【Kotlin】类的初始化 ② ( 主构造函数 | 主构造函数定义临时变量 | 主构造函数中定义成员属性 | 次构造函数 | 构造函数默认参数 )
在 Kotlin 类中 , 可以在 类声明 时 在 类名后 定义 " 主构造函数 " ;
韩曙亮
2023/03/30
4.9K0
继承中的构造方法内存处理
实际上在面向对象第一天的讲解当中,我们对内存方面做了一些隐瞒。因为除了Object类,所有的类都是有父类的。但是我们在考虑内存图时忽略了这点,现在,我们来简单描述加入了子父类关系后的对象内存图。
星哥玩云
2022/09/14
4810
继承中的构造方法内存处理
【学习笔记】SWIFT中的构造函数
2017-05-05 by Liuqingwen | Tags: Swift | Hits
IT自学不成才
2019/01/08
1.2K0
React的事件处理函数用法详解!
页面交互必然会伴随事件的发生,譬如HTML中的一个button被点击了一下,接下来页面应该怎么反应?就是需要button的onClick事件函数来处理。
Learn-anything.cn
2021/11/28
9000
C++构造函数 | 构造函数
C++在建立一个对象时,常常需要作某些初始化,如果一个数据成员未被赋值,则它的值是不可预知的,因为在系统为它分配内存时,保留了这些存储单元的原状,这就成为了这些数据成员的初始值,在C++中,对象是一个实体,它反映了客观事物的属性,是应该有确定的值的。
小林C语言
2021/01/26
2.2K0
C++构造函数 | 构造函数
react中的事件处理(二)
在React中,事件处理函数通常会与组件的状态(state)进行交互。我们可以通过更新状态来响应事件的发生。
堕落飞鸟
2023/05/19
8200
react中的事件处理(一)
React中的事件绑定采用了类似于HTML中的方式,但有一些语法上的差异。我们可以在组件中定义事件处理函数,并将其绑定到特定的事件上。
堕落飞鸟
2023/05/19
7080
解析C#类中的构造函数
彭泽0902
2018/01/04
3.4K0
关于C#事件处理函数中的参数(object sender, EventArgs e)
1、是事件源,表示触发事件的那个组件 如(button/label/listview...),比如说你单击button,那么sender就是button
zls365
2021/02/26
2.2K0
C++中类的构造函数和析构函数
构造函数 对象创建的时候执行 student s //空参构造函数 栈内存中 student s("测试")//带参构造函数 栈内存中 或者 student *s=new student//空参构造函
乱码三千
2021/07/29
2K0
C++中类的构造函数和析构函数
Java里的构造函数(构造方法)
本文转载之https://www.cnblogs.com/livterjava/p/4709561.html
用户7886150
2021/01/31
2.5K0
创造特殊的构造函数——寄生构造函数模式
当我们需要构造一个特殊的数据,我们可以通过寄生构造函数来实现。比如我们要格式化一个Array(简单举例),将其变成一个有“|”组成的字符串,我们可以这么做:
就只是小茗
2018/12/07
9530
点击加载更多

相似问题

函数可以处理'keypress‘事件,但不能处理我激发的相同的'keypress’事件

27

构造函数内部的事件处理

12

构造函数中的事件处理程序与事件处理程序在构造函数之外的行为不同。

11

未激发隐藏事件处理程序

10

UserControl的事件处理程序不会激发

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文