我有一個運行在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