我在Ubuntu 16.04上运行了一个ASP.NET核心应用程序。当我导航到目录并运行dotnet run
时,它工作正常。我也可以按照指定on the .NET Core Docs设置Nginx反向代理。但是,当我执行dotnet publish
然后尝试使用发布目录(dotnet SlogWeb.dll
)中的SlogWeb/bin/Debug/netcoreapp1.0/publish
时,服务器启动时没有错误,但无法显示任何日志记录信息并导航到网站产生500错误。
您可以看到the full project on GitHub。重要的一点可能是我的project.json文件:
// dependencies and tools
"publishOptions": {
"include": [
"wwwroot",
"web.config",
"appsettings.Production.json"
]
},
"scripts": {
"prepublish": [ "npm install", "gulp build" ]
}
我的Startup.cs文件的configure方法:
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.
如果我还有其他什么要发布,请告诉我。
答案 0 :(得分:2)
您在控制台中看不到任何内容,因为您的发布/日志记录配置错误。
您有appsettings.json
个文件,但是您没有将其发布(publishOptions
中的projects.json
)。您发布了不存在的appsettings.productions.json
。
因此,您的配置中没有任何Logging
部分。这[可能]是您在控制台中看不到任何内容的原因。
答案 1 :(得分:-2)
您安装并配置了nginx吗? https://www.nginx.com/resources/wiki/start/topics/tutorials/install/
示例conf:
server {
listen 80 default_server;
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;
}
}