2016-12-27 64 views
0

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

請讓我知道如果有什麼我應該發佈。

+0

您是否收到來自Nginx或Kestrel的錯誤500?運行沒有Nginx的網站,看看你是否直接從Kestrel收到任何結果。如果Kestrel會在日誌中沒有任何消息的情況下返回500錯誤(除非您禁用日誌記錄 - 請檢查您的'Startup'進行日誌記錄設置),這非常奇怪。 – Dmitry

+0

@Dmitry我添加了我正在使用的日誌記錄方法,以及當我嘗試運行發佈的'.dll'時從Kestrel中看到的內容。 – Shaun

+0

你從'http:// localhost:5000'(僅限Kestrel)還是從'http:// localhost:80'(Nginx + Kestrel)收到錯誤500? – Dmitry

回答

2

沒有什麼東西在控制檯,因爲你發佈/日誌記錄配置是錯誤的。

您有appsettings.json文件,但不發佈它(publishOptionsprojects.json)。您發佈了不存在的appsettings.productions.json

因此,您的配置中沒有任何Logging部分。這可能是你在控制檯中什麼都看不到的原因。

+0

這除了@ iikkoo關於發佈視圖的評論解決了我的問題。 'appsettings.Production.json'文件被隱式地從存儲庫中排除,因爲它包含我在開發中使用用戶祕密的祕密配置。一旦我將'appsettings.json'添加到'publishOptions:include'數組中,記錄工作正常,我能夠看到問題是缺少Views。 – Shaun

-1

您是否安裝並配置了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; 
} 

}

+0

nginx配置在這裏完全沒有關係。 – Nozim

相關問題