我有一个运行在Ubuntu 16.04上的ASP.NET Core应用程序。当我导航到目录并运行dotnet run
时,它工作正常。我也可以设置Nginx反向代理,如指定on the .NET Core Docs。但是,当我执行dotnet publish
,然后尝试使用发布目录(SlogWeb/bin/Debug/netcoreapp1.0/publish
)中的dotnet SlogWeb.dll
时,服务器启动时没有错误,但无法显示任何日志记录信息,导航到网站会产生500错误。你可以看到the full project on GitHub。最重要的位是可能是我project.json文件:.NET Core发布的应用程序只显示500错误
// dependencies and tools
"publishOptions": {
"include": [
"wwwroot",
"web.config",
"appsettings.Production.json"
]
},
"scripts": {
"prepublish": [ "npm install", "gulp build" ]
}
而且我Startup.cs文件的配置方法:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, DbSeeder dbSeeder) {
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment()) {
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
if (env.IsProduction()) {
app.UseForwardedHeaders(new ForwardedHeadersOptions {
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
}
// ...
如果我浏览到SlogWeb/bin/Debug/netcoreapp1.0/publish
和运行dotnet SlogWeb.dll
,我得到的标准启动消息,但然后沉默:
Hosting environment: Production
Content root path: /home/shaun/sites/Slog/src/SlogWeb/bin/Debug/netcoreapp1.0/publish
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
请让我知道如果有什么我应该发布。
您是否收到来自Nginx或Kestrel的错误500?运行没有Nginx的网站,看看你是否直接从Kestrel收到任何结果。如果Kestrel会在日志中没有任何消息的情况下返回500错误(除非您禁用日志记录 - 请检查您的'Startup'进行日志记录设置),这非常奇怪。 – Dmitry
@Dmitry我添加了我正在使用的日志记录方法,以及当我尝试运行发布的'.dll'时从Kestrel中看到的内容。 – Shaun
你从'http:// localhost:5000'(仅限Kestrel)还是从'http:// localhost:80'(Nginx + Kestrel)收到错误500? – Dmitry