2016-07-25 97 views
1

一個ASP.NET 1.0的核心應用上的ASPNETCORE 1.0應用程序在啓動時我有以下幾點:發佈並運行在生產

public Startup(IHostingEnvironment hostingEnvironment) { 

    ConfigurationBuilder builder = new ConfigurationBuilder(); 

    builder 
    .SetBasePath(hostingEnvironment.ContentRootPath) 
    .AddJsonFile("settings.json", false, true) 
    .AddJsonFile($"settings.{hostingEnvironment.EnvironmentName}.json", false, true); 
    builder.AddEnvironmentVariables(); 

    Configuration = builder.Build(); 

} 

我有我的項目2個設置文件:

settings.json 
settings.production.json 

我使用命令行發佈了該項目:

set ASPNETCORE_ENVIRONMENT=production 
dotnet publish --configuration Release 

已發佈的文件包括settings.json而不是settings.production.json。並且settings.json確實包括僅在settings.production.json中的屬性。不應該在發佈時合併它們嗎?

最重要的是,當我將文件複製到我的服務器時,如何確保應用程序在生產模式下運行?

我需要對Web.config做什麼嗎?

回答

1

你需要更新你的project.jsonsettings.production.json文件添加到publishOptionsinclude部分:

{ 
    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "Views", 
     "Areas/**/Views", 
     "settings.json", 
     "settings.production.json", 
     "web.config" 
    ] 
    } 
} 
+0

好吧,當我有服務器如何「告訴它」應用到生產環境中運行? –

+1

您應該在生產中運行您的應用程序的服務器上設置環境變量「ASPNETCORE_ENVIRONMENT = production」。有關更多詳細信息,請參見https://docs.asp.net/en/latest/fundamentals/environments.html – Sock

+0

該文章討論了有關環境變量的內容,但沒有涉及將其設置在服務器和各種選項中。然後我發現以下內容:http://stackoverflow.com/questions/31049152/asp-net-5-publish-to-iis-setting-aspnet-env-variables –