IBM® Bluemix 上运行ASP.NET Core
IBM? Bluemix? 上的“ASP.NET 核心”運行時采用“ASP.NET 核心”buildpack 技術(shù)。“ASP.NET 核心”是用于構(gòu)建 .NET Web 應(yīng)用程序的模塊化開放式源代碼框架。“.Net 核心”是跨平臺的小型運行時,可由“ASP.NET 核心”應(yīng)用程序?qū)崿F(xiàn)。將它們相結(jié)合可實現(xiàn)基于云的先進 Web 應(yīng)用程序。
檢測
如果應(yīng)用程序中的任何位置存在一個或多個包含 project.json 文件和至少一個 .cs 文件的文件夾,或者應(yīng)用程序是從 dotnet publish 命令的輸出目錄進行推送,那么將使用 Bluemix 的“ASP.NET 核心”buildpack。
入門模板應(yīng)用程序
IBM? Bluemix? 提供了“ASP.NET 核心”入門模板應(yīng)用程序。“ASP.NET 核心”入門模板應(yīng)用程序是一個簡單的應(yīng)用程序,它提供了一個可供您使用的模板。您可以體驗該入門模板應(yīng)用程序,對其進行更改并將更改推送到 Bluemix 環(huán)境。有關(guān)使用入門模板應(yīng)用程序的幫助,請參閱使用入門模板應(yīng)用程序。
運行時版本
指定 .NET CLI 版本
使用應(yīng)用程序根目錄中的可選 global.json 來控制 .NET CLI 版本。例如:
? { ? ? ?"projects": [ "src" ], ? ? ?"sdk": { ? ? ? ?"version": "1.0.0-preview1-002702" ? ? ?} ? }
如果未指定,將使用穩(wěn)定的最新候選發(fā)布版本。
定制 NuGet 數(shù)據(jù)包源
在應(yīng)用程序根目錄中的 NuGet.Config 文件中控制應(yīng)用程序依賴項的下載來源位置。例如:
? ? <configuration> ? <packageSources> ? ? ?<add key="NuGet.org" value="https://api.nuget.org/v3/index.json"/> ? </packageSources> ? </configuration>
在本地開發(fā)應(yīng)用程序
有關(guān)在本地運行“ASP.NET 核心”應(yīng)用程序的更多信息,請參閱 ASP.NET 入門。要盡量匹配應(yīng)用程序在 Bluemix 中的運行方式,請遵循 Linux 中有關(guān)“.NET 核心”的指示信息,但無需在 Linux 上開發(fā)應(yīng)用程序。
使用 Yeoman 工具可生成新的項目模板,如 Building Projects with Yeoman 中所述。
推送發(fā)布的應(yīng)用程序
如果想要在應(yīng)用程序中包含其需要的所有二進制文件,以使 buildpack 無需下載任何外部二進制文件,您可以推送發(fā)布的自包含應(yīng)用程序。請參閱 Types of portability in .Net Core,以獲取有關(guān)自包含應(yīng)用程序的更多信息。
要發(fā)布應(yīng)用程序,請發(fā)出類似如下命令:
dotnet publish -r ubuntu.14.04-x64
然后即可從
?bin/<Debug|Release>/<framework>/<runtime>/publish
目錄推送應(yīng)用程序。
另請注意,如果在應(yīng)用程序中使用 manifest.yml 文件,您可以在 manifest.ymle 中指定發(fā)布輸出文件夾的路徑。之后在推送應(yīng)用程序時,您無需位于該文件夾中。
部署包含多個項目的應(yīng)用程序
要部署包含多個項目的應(yīng)用程序,您需要指定希望 buildpack 將哪個項目作為主要項目運行。在解決方案的根文件夾中創(chuàng)建 .deployment 文件來設(shè)置主要項目的路徑即可完成此操作。您可以將主要項目的路徑指定為項目文件夾或項目文件(.xproj 或 .csproj)。
例如,如果解決方案的 src 文件夾中包含 MyApp.DAL、MyApp.Services 和 MyApp.Web 這三個項目,其中 MyApp.Web 是主要項目,那么 .deployment 文件的格式應(yīng)如下所示:
? [config] ?project = src/MyApp.Web
在此示例中,如果在 project.json 文件中將 MyApp.DAL 和 MyApp.Services 項目列為 MyApp.Web 的依賴項,那么 buildpack 會自動編譯這兩個項目,但 buildpack 只會嘗試使用 dotnet run -p src/MyApp.Web 執(zhí)行主要項目 MyApp.Web。假定 MyApp.Web 為 xproj 項目,那么此項目的路徑還可指定為
project = src/MyApp.Web/MyApp.Web.xproj
使用 cli 樣本存儲庫中的樣本以及 Visual Studio 模板
buildpack 將使用 dotnet run 命令運行您的應(yīng)用程序,并傳遞以下內(nèi)容之后的命令行自變量
--server.urls http://0.0.0.0:${PORT}
應(yīng)用程序需要將此自變量傳遞到 kestrel,以確保 kestrel 偵聽正確的端口。
要實現(xiàn)此自變量的傳遞,需要對 cli 樣本存儲庫中提供的樣本以及 Visual Studio 提供的模板稍作修改,然后再部署到 Bluemix。
您需要根據(jù)以下示例中的注釋對 Main 方法進行修改:
public static void Main(string[] args) ?{
?var config = new ConfigurationBuilder() //ADD THESE 3 LINES AT THE TOP OF THE MAIN METHOD ? ? ? ?.AddCommandLine(args) ? ? ? ?.Build(); ? ?var host = new WebHostBuilder() ? ? ? ?.UseKestrel() ? ? ? ?.UseConfiguration(config) //ADD THIS LINE BEFORE 'UseStartup' ? ? ? ?.UseStartup<Startup>() ? ? ? ? ?.Build(); ? ?host.Run(); }
將以下依賴項添加到 project.json 中:
"Microsoft.Extensions.Configuration.CommandLine": "1.0.0-rc2-final",
將 using 語句添加到包含 Main 方法的文件中:
using Microsoft.Extensions.Configuration;
原文地址:https://new-console.ng.bluemix.net/docs/runtimes/dotnet/index.html
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的IBM® Bluemix 上运行ASP.NET Core的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在 ASP.NET MVC 中集成
- 下一篇: .NET HttpClient的缺陷和文