已经试着调试了4天了。我有一个ASP.NET Core2Web应用程序,我试图在Redhat Linux7.1Systemd中运行。dll在手动运行时工作正常,但在尝试通过SystemD运行时失败。
systemctl的输出
web.service-WebServiceLayer loaded:loaded(/etc/systemd/user/web.service;已启用;供应商预置:>已禁用)
激活:自SUN2019-04-28>12:49:01 CDT开始激活(自动重启)(结果:退出代码);2s前
进程:13588 execstart=/microsoft/dotnetcore/dotnet/local/lfs1/serviceLayer/webserviceLayer/webserviceLayer.dll(代码=exited,status=203/exec)
主PID:13588(代码=exited,status=203/exec)
4月28日12:49:01 MyMachine.NET SystemD[1]:Web.Service:主进程已退出,code=exited,status=203/exec
4月28日12:49:01 MyMachine.NET SystemD[1]:Unit Web.Service进入失败状态。
4月28日12:49:01 MyMachine.NET SystemD[1]:Web.Service失败。
这是基本服务文件
mymachine home/username $ cat /etc/systemd/user/web.service
[Unit]
Description=WebServiceLayer
After=syslog.target
[Service]
User=serviceUser
Group=serviceUser
PIDFile=/tmp/$i.pid
WorkingDirectory=%h
Environment="PATH=/microsoft/dotnetcore/"
ExecStart="/microsoft/dotnetcore/dotnet /local/lfs1/ServiceLayer/WebServiceLayer/WebServiceLayer.dll"
Restart=always
RestartSec=3
StartLimitBurst=10
StartLimitIntervalSec=0
KillSignal=SIGQUIT
StandardError=syslog
NotifyAccess=all
[Install]
WantedBy=multi-user.target
[serviceuser@mymachine]://microsoft/dotnetcore/dotnet/local/lfs1/serviceLayer/webserviceLayer/webserviceLayer.dll宿主环境:生产内容根路径:/home/serviceUser正在监听:“http://0.0.0.0:7777”应用程序启动。按Ctrl+C关闭。
我已经研究过修复systemd Service203/exec故障(没有这样的文件或目录),但这对我的问题没有帮助。任何帮助都将不胜感激。
dll文件中Program.cs中的代码:
public static void Main(string[] args)
{
// NLog: setup the logger first to catch all errors
var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
try
{
logger.Debug("init main");
CreateWebHostBuilder(args).Build().Run();
}
catch (Exception ex)
{
//NLog: catch setup errors
logger.Error(ex, "Stopped program because of exception");
throw;
}
finally
{
// Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux)
NLog.LogManager.Shutdown();
}
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseUrls(urls: "http://mymachine.net:7777")
.UseStartup<Startup>()
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
})
.UseNLog(); // NLog: setup NLog for Dependency injection
}
从你得到的输出来看,很难知道发生了什么。我建议您配置一些额外的日志记录。
首先,您可以将日志记录配置为文本文件以获取更多细节。更多信息:https://docs.microsoft.com/en-us/aspnet/core/fundaments/logging/?view=aspnetcore-2.2
之后,您可以在main方法中的代码周围放置一个大的try/catch并记录异常。
我想到的唯一快速检查是,serviceUser是否有足够的权限访问dll或配置文件或任何相关的东西?
问题内容: 我处于一个非常奇怪的位置(从我的java-newbie的角度来看): 我使用Eclipse编写了一个“ java程序”(一些带有类的.java文件),从本质上(分批)读取文本 .csv文件,“求值”其内容,并将结果写到 _out.csv文本文件中。要找到输入文件,它使用“文件选择器”(从此处获取示例:http : //docs.oracle.com/javase/tutorial/ui
我通过Jasmine、Karma和各种浏览器进行测试。我目前正在调试一个只在PhantomJS中失败的测试。 我想调试这个调用,所以我在karma中设置了一个自定义的PhantomJS启动器,在调试端口打开的情况下运行它。 我可以通过该端口访问Chrome中的远程调试器,但是,它似乎对我的任何测试文件一无所知。它报告一个“关于:空白”和一个“localhost:9876”(Phantom正在访问的
问题内容: 谁能告诉我如何对共享库进行运行时调试? 我需要在运行时调试共享库中的一个函数,但另一个程序会调用它。如何使用共享库执行类似dbx的操作? 我在AIX上使用dbx。我想做的是gdb比dbx好吗? 问题答案: 您只需要使用可执行文件调用gdb(无论是您的文件还是第三方文件都没有关系)。这是一个示例,其中我调试 ls 命令并在(共享) c库中 设置断点。此示例使用了gdb 6.8,它支持延迟
问题内容: 我最近从log4j切换到logback,想知道是否有一种简单的方法可以在调试模式下运行logback,类似于log4j的属性。我需要看看它在哪里接我。 该文档提到使用a 打印出回传的内部状态,但这需要更改代码。 问题答案: [编辑] 此问题已在Logback 1.0.4中修复。现在,您可以用来启用回退设置的调试。 -旧答案- 不幸的是,无法通过System属性启用调试。你必须使用的。请
问题内容: 当我运行以下代码时: 我收到此错误: 退出状态1 但是,这对调试错误的确切原因没有帮助。 如何获得更详细的信息? 问题答案: 解决方案是使用Command对象的属性。可以这样完成: 运行上面的代码,可以清楚地说明问题所在: 退出状态1:查找:-exec:不终止“;” 或“ +” 编辑: 在上面的代码中,我们希望在发生错误的情况下,消息将被打印到stderr,并且命令将返回非零的错误代码
问题内容: 我正在尝试学习ES的工作原理,但是我无法从IDE中运行它。我想运行2.3.3构建,该构建仍将Maven用作其构建系统,但会不断出错。在我详细下载存储库之后,有人可以告诉我如何在IDEA中执行此操作。配置等 我从github下载存储库,然后将项目导入intellij并使用以下配置: 主类:org.elasticsearch.bootstrap.Elasticsearch Vm选项: 工作