自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在Azure上部署和監(jiān)控ASP.Net內(nèi)核?

譯文
云計(jì)算
在本文中,我們看看如何將你的ASP.Net內(nèi)核應(yīng)用程序部署到Azure中以及如何監(jiān)控其性能與生命周期。

【51CTO.com快譯】ASP.Net內(nèi)核(Core)是ASP.NET的***版本。它是通過(guò)利用.Net內(nèi)核,這個(gè)輕量級(jí)的、可組合的.NET框架為基礎(chǔ)來(lái)建立的。有些人喜歡用,但有些人并不喜歡。不過(guò),這畢竟是未來(lái)的趨勢(shì)。微軟將來(lái)會(huì)向著.Net內(nèi)核邁進(jìn),而那些常規(guī)的、成熟版本也必將消亡。

我是非常喜歡ASP.Net內(nèi)核的。它有著大量的新特性、更為精簡(jiǎn)、而且運(yùn)行起來(lái)非???。當(dāng)然,它需要被運(yùn)行在Azure上面。

在這篇文章中,我將向你展示如何為Azure部署一個(gè)簡(jiǎn)單的ASP.Net內(nèi)核應(yīng)用程序。我還將向你展示如何用Stackify Retrace,這一應(yīng)用性能管理工具的來(lái)向該一個(gè)應(yīng)用程序發(fā)出各種指令。
在本文章中,我將用到一個(gè)名為SimplCommerce的示例程序。這是一個(gè)基于ASP.Net內(nèi)核的、開(kāi)源的、電子商務(wù)類型的應(yīng)用。你可以在GitHub上獲取到。該應(yīng)用程序基本上是由一個(gè)web應(yīng)用程序和一個(gè)數(shù)據(jù)庫(kù)所組成。

我將指導(dǎo)你完成如下的步驟:

在SQL Azure上創(chuàng)建SimplCommerce數(shù)據(jù)庫(kù)
配置該應(yīng)用程序來(lái)使用Stackify Retrace
將該應(yīng)用程序部署到Azure
為web應(yīng)用激活Stackify Retrace
Stackify Retrace在運(yùn)行中的優(yōu)點(diǎn)

在SQL Azure上創(chuàng)建SimplCommerce數(shù)據(jù)庫(kù)

SimplCommerce應(yīng)用程序使用一個(gè)SQL數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)其產(chǎn)品目錄和其他數(shù)據(jù)。在開(kāi)始使用該應(yīng)用之前,你首先需要設(shè)置一個(gè)數(shù)據(jù)庫(kù)。你可以選擇將其放置在本地,也可以放到其他別的地方。

因?yàn)槲业挠?jì)劃是將整個(gè)應(yīng)用程序部署到Azure上面,所以當(dāng)我在Azure里工作時(shí),我就使用的是一個(gè)在它內(nèi)部運(yùn)行的數(shù)據(jù)庫(kù)。這樣的好處在于:它會(huì)給我足夠的信心在Azure SQL里做各種運(yùn)行的嘗試時(shí)候,而不會(huì)碰到與本地SQL服務(wù)器上所產(chǎn)生的任何奇怪的差異問(wèn)題。

我們需要執(zhí)行以下步驟來(lái)設(shè)置一個(gè)Azure SQL數(shù)據(jù)庫(kù)并連接它:

1.創(chuàng)建一個(gè)Azure SQL數(shù)據(jù)庫(kù)
2.修改應(yīng)用程序中的連接字串(connectionstring)
3.開(kāi)啟防火墻,以允許我的本地機(jī)器連接到Azure SQL Server

步驟1:創(chuàng)建一個(gè)Azure SQL數(shù)據(jù)庫(kù)

***步是創(chuàng)建一個(gè)Azure SQL數(shù)據(jù)庫(kù),以承載SimplCommerce的數(shù)據(jù)。我運(yùn)用Azure的門戶界面(Portal)來(lái)創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)。它會(huì)以一個(gè)向?qū)У男问綆е以贏zure SQL Server上進(jìn)行創(chuàng)建,并合理進(jìn)行配置。

正如你在上圖中所看到的,我選擇的只是“基本定價(jià)層(pricing tier)”。因?yàn)檫@將只是一個(gè)測(cè)試應(yīng)用而已,并不需要大量的“馬力(資源)”。

Azure SQL server和數(shù)據(jù)庫(kù)就這樣創(chuàng)建好了,我們現(xiàn)在需要連接到它。我想把我的本地機(jī)器連接到SQL Azure數(shù)據(jù)庫(kù),并使用它來(lái)進(jìn)行當(dāng)?shù)亻_(kāi)發(fā)。盡管這種數(shù)據(jù)庫(kù)與我的代碼分處異處的方式貌似低效,但實(shí)際上這已經(jīng)足夠能快速運(yùn)行了。

步驟2:修改應(yīng)用中的連接字串

為了將SimplCommerce應(yīng)用程序連接到數(shù)據(jù)庫(kù),我需要修改其連接字串。在ASP.Net內(nèi)核里,這些設(shè)置位于appsettings.json和一些底層文件之中。這些.json文件包含了各種配置,就像以前的那個(gè)web.config文件一樣。

令人感到奇妙的是:它們是根據(jù)你設(shè)置的環(huán)境變量來(lái)工作的。例如,你可以創(chuàng)建一個(gè)appsettings.development.json文件來(lái)用于環(huán)境變量的變化。就像這樣:

我在此處所說(shuō)的環(huán)境變量是指ASPNETCORE_ENVIRONMENT變量。默認(rèn)情況下,當(dāng)你在Visual Studio中調(diào)試時(shí),ASP.Net內(nèi)核用到該變量,且值為“development”。而當(dāng)你部署自己的應(yīng)用時(shí),該變量的默認(rèn)值則為“production”。你可以在任何所用到的托管環(huán)境中覆蓋該變量,甚至是在Visual Studio的項(xiàng)目文件(projectfile)的設(shè)置中。

總之,為了把我的本地機(jī)器連接到數(shù)據(jù)庫(kù),我將數(shù)據(jù)庫(kù)的連接字串放到了appsettings.development.json文件中。

步驟3:開(kāi)啟防火墻,以允許我的本地機(jī)器連接到Azure SQL Server

但這還不夠,Azure SQL Server在默認(rèn)情況下開(kāi)啟了防火墻,阻斷了除Azure中的地址以外的所有IP地址去訪問(wèn)服務(wù)器。因此,我需要將自己的IP地址添加到防火墻中,以連到服務(wù)器上。你可以在Azure的門戶界面里設(shè)置Azure SQL Server。

一切設(shè)置好以后,你會(huì)發(fā)現(xiàn)數(shù)據(jù)庫(kù)還是空的,沒(méi)有任何的數(shù)據(jù)表。在GitHub的SimplCommerce頁(yè)面上,你會(huì)找到用來(lái)執(zhí)行將各種表和數(shù)據(jù)填充到數(shù)據(jù)庫(kù)的具體步驟。這些對(duì)數(shù)據(jù)庫(kù)的填充主要涉及到運(yùn)行一個(gè)實(shí)體框架的遷移和SQL腳本的操作。

配置應(yīng)用程序來(lái)使用Stackify Retrace

在將應(yīng)用程序部署到Azure之前,我需要將其準(zhǔn)備好并把數(shù)據(jù)發(fā)送到Stackify Retrace,以方便我們?nèi)ケO(jiān)控該應(yīng)用是如何運(yùn)行的。這是一個(gè)非常強(qiáng)大的監(jiān)控工具,它能幫助我監(jiān)控到:

應(yīng)用程序和相關(guān)組件的性能
應(yīng)用程序中的內(nèi)部錯(cuò)誤
應(yīng)用程序的可用性

上述的***點(diǎn)是非常重要的,因?yàn)槲蚁肟吹皆搼?yīng)用的全方位性能。這還意味著我也想看到我的各個(gè)相關(guān)組件,例如Azure SQL數(shù)據(jù)庫(kù),的執(zhí)行狀況和需要改進(jìn)的地方。同時(shí)我也需要包括對(duì)應(yīng)用程序出現(xiàn)錯(cuò)誤時(shí)的提醒和深入挖掘重要因素的能力。如果沒(méi)有它,我至少要等到用戶反饋的時(shí)候才會(huì)知道錯(cuò)誤的發(fā)生,這會(huì)造成非常不好的用戶體驗(yàn)。Retrace能幫助我深挖錯(cuò)誤、追溯原因并予以修復(fù)。而所有的這些都只需要簡(jiǎn)單的設(shè)置便可實(shí)現(xiàn)。

首先,我添加名為StackifyMiddleware的塊包,你可以在如下圖所示的Visual Studio中進(jìn)行操作或是在包管理器的控制臺(tái)窗口中輸入以下命令:

Install-Package StackifyMiddleware

然后,你可以在應(yīng)用程序的類中激活所需的Stackify中間件。而在配置方法上,你需要輸入一行:app.UseMiddleware<StackifyMiddleware.RequestTracerMiddleware>(); 注意,在插入這一行語(yǔ)句之前,你要先定義好app.UseMvc的聲明。

好,現(xiàn)在一切都準(zhǔn)備就緒了,我們可以開(kāi)始向Azure部署該應(yīng)用了。

將ASP.NET內(nèi)核部署到Azure

我想讓該應(yīng)用程序運(yùn)行在Azure中。為了做到這一點(diǎn),我將創(chuàng)建一個(gè)Azure的Web應(yīng)用,并將我的應(yīng)用程序部署到里面。就像其他類型的應(yīng)用程序一樣,ASP.NET內(nèi)核的應(yīng)用程序是運(yùn)行在Azure的Web應(yīng)用之中的。請(qǐng)記住老版本的ASP.NET內(nèi)核的應(yīng)用程序(也就是基于project.json格式的)將在2017年5月底之后不再被Azure所支持。

我將使用Visual Studio來(lái)把該應(yīng)用程序部署到Azure。這其實(shí)很簡(jiǎn)單,你只需右鍵單擊ASP.NET應(yīng)用的項(xiàng)目文件并選擇發(fā)布(publish)。如下所示的向?qū)Ь蜁?huì)指導(dǎo)你去實(shí)現(xiàn)。如果你沒(méi)有現(xiàn)成的話,它甚至?xí)槟銊?chuàng)建一個(gè)全新的Web應(yīng)用。

在這些完成之后,我就有了一個(gè)Web應(yīng)用,該應(yīng)用程序就運(yùn)行于其中。不過(guò),它是仍不可運(yùn)行的。

為該Web應(yīng)用激活Stackify追溯

首先,我需要安裝一個(gè)擴(kuò)展,以便Stackify Retrace能夠捕捉到Web應(yīng)用的數(shù)據(jù)。我可以從Azure的門戶來(lái)實(shí)現(xiàn)。在那里,你可以在Web應(yīng)用的選項(xiàng)中選擇擴(kuò)展菜單(extensions menu)并選擇Stackify APM + extension,然后安裝它。這將激活Stackify來(lái)捕捉運(yùn)行Web應(yīng)用所需資源的各項(xiàng)指標(biāo),如CPU、內(nèi)存等。

記住,請(qǐng)確保在安裝了這個(gè)擴(kuò)展之后重新啟動(dòng)該Web應(yīng)用。

配置Web應(yīng)用

接下來(lái),我需要做的就是配置該Web應(yīng)用。

記得嗎?我已經(jīng)把數(shù)據(jù)庫(kù)的連接字串放入了appsettings.development.json文件中。就是因?yàn)樵谀J(rèn)情況下,該應(yīng)用在部署的時(shí)候并會(huì)不使用development.json文件,因此它不能連接到數(shù)據(jù)庫(kù)??梢?jiàn),我需要給該Web應(yīng)用的應(yīng)用設(shè)置(ApplicationSettings)中的連接字串賦值,這將覆蓋數(shù)據(jù)庫(kù)的連接配置設(shè)置,以允許該應(yīng)用程序連接到數(shù)據(jù)庫(kù)。

另外,我需要插入Stackify.ApiKey及其值到該應(yīng)用的設(shè)置中。這將告訴Stackify該Web應(yīng)用屬于我的帳戶的,要并讓我能夠看到該應(yīng)用的數(shù)據(jù)。你可以在你的Stackify的賬號(hào)面板上找到這個(gè)鍵值。當(dāng)然,如果你還沒(méi)有帳戶的話,你就需要注冊(cè)一個(gè)14天的適用版了。

我還建議你設(shè)置Stackify.AppName和Stackify.Environment的屬性。這些都會(huì)出現(xiàn)在Stackify的門戶界面上,并能夠幫助你去識(shí)別你的應(yīng)用。你可以通過(guò)閱讀如下鏈接 ,以了解Azure應(yīng)用服務(wù)中設(shè)置Stackify Retrace的全部指令。http://support.stackify.com/hc/en-us/articles/206350463-APM-for-Azure-Web-Apps?

Stackify Retrace在運(yùn)行中的優(yōu)點(diǎn)

通過(guò)Stackify Retrace的后臺(tái)運(yùn)行,我可以看到一些有關(guān)該應(yīng)用程序的有趣信息。Stackify是一個(gè)SaaS產(chǎn)品,所以你可以在登錄到https://stackify.com之后看到你的數(shù)據(jù)。在這里,我可以訪問(wèn)到各種各樣的儀表盤和指標(biāo),從而定制出我心儀的內(nèi)容。

我最喜歡的一個(gè)是性能儀表盤。在這里,我可以很容易地看到我的應(yīng)用的運(yùn)行狀態(tài)和各種表現(xiàn)。Retrace可以告訴我有哪些相關(guān)的組件,而且可以對(duì)它們進(jìn)行查看。在這種情況下,如下圖示,我調(diào)入了一個(gè)最耗時(shí)間的Azure SQL數(shù)據(jù)庫(kù)。我能夠很快看到在當(dāng)前時(shí)間段有多少個(gè)失敗請(qǐng)求。

顯示在它后面的錯(cuò)誤概述也很有幫助。它告知我了該應(yīng)用程序里的一個(gè)錯(cuò)誤,你可以讓它運(yùn)行一段時(shí)間以得到其概述。它會(huì)顯示正在發(fā)生的錯(cuò)誤數(shù)量,并以簡(jiǎn)短的堆積跟蹤線來(lái)顯示。

你可以深入了解這些堆積跟蹤線,來(lái)查看到包括HTTP請(qǐng)求和HTTP頭部在內(nèi)的有關(guān)錯(cuò)誤的各種信息。

這個(gè)功能對(duì)于讓你能快速地得到錯(cuò)誤的根源并解決之是非常強(qiáng)大的。

【原標(biāo)題】Deploying (and Monitoring) ASP.NET Core on Azure (作者: Barry Luijbregts )
原文鏈接:https://dzone.com/articles/deploying-and-monitoring-aspnet-core-on-azure

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:關(guān)崇 來(lái)源: 51CTO
相關(guān)推薦

2017-05-24 17:04:41

云計(jì)算云計(jì)算半月刊

2009-08-05 11:00:46

獲得RowIndexASP.NET

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2009-07-29 16:08:07

ASP和ASP.NET

2009-07-23 13:09:23

2009-07-24 10:41:00

asp.net mvc

2021-01-28 22:39:35

LoggerMessa開(kāi)源框架

2021-01-07 07:39:07

工具接口 Swagger

2021-01-31 22:56:50

FromServiceASP

2021-02-03 13:35:25

ASPweb程序

2021-03-03 22:37:16

MediatR中介者模式

2021-03-10 09:40:43

LamarASP容器

2021-02-28 20:56:37

NCache緩存框架

2021-02-06 21:40:13

SignalR通訊TypeScript

2021-03-17 09:45:31

LazyCacheWindows

2021-11-01 14:52:38

ElasticSear索引SQL

2021-02-02 16:19:08

Serilog日志框架

2009-04-21 09:56:58

AzureMVCASP.NET

2009-07-27 14:46:16

XML和ASP.NET

2009-08-10 17:17:10

ASP.NET安裝部署
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)