当前位置: 首页 > 科技观察

如何在Azure上部署和监控ASP.NetCore?

时间:2023-03-14 22:45:05 科技观察

【.com速译】ASP.Net核心(Core)是ASP.NET的最新版本。它是利用.NetCore构建的,这是一种轻量级、可组合的.NETFramework。有些人喜欢使用它,有些人不喜欢。不过,这毕竟是未来的趋势。微软以后会走向.Netcore,那些正规的、成熟的版本肯定会消亡。我真的很喜欢ASP.Net核心。它具有大量新功能,更精简,并且运行速度非常快。当然,它需要在Azure上运行。在本文中,我将向您展示如何将一个简单的ASP.NetCore应用程序部署到Azure。我还将向您展示如何使用应用程序性能管理工具StackifyRetrace向应用程序发出各种命令。在本文中,我将使用一个名为SimplCommerce的示例程序。这是一个基于ASP.Net核心的开源电子商务类型应用程序。你可以在GitHub上获取它。该应用程序基本上由Web应用程序和数据库组成。我将指导您完成以下步骤:?在SQLAzure上创建一个SimplCommerce数据库?配置应用程序以使用StackifyRetrace?将应用程序部署到Azure?为Web应用程序激活StackifyRetrace即时StackifyRetrace的好处创建SQLAzure上的SimplCommerce数据库SimplCommerce应用程序使用SQL数据库来存储其产品目录和其他数据。在开始使用该应用程序之前,您首先需要设置一个数据库。您可以选择将其放置在本地或其他地方。由于我的计划是将整个应用程序部署到Azure,因此当我在Azure中工作时,我会使用在其中运行的数据库。这样做的好处是,它会让我有足够的信心在AzureSQL中尝试各种运行,而不会遇到与本地SQL服务器的任何奇怪差异。我们需要执行以下步骤来设置AzureSQL数据库并连接到它:1.创建AzureSQL数据库2.修改应用程序中的连接字符串(connectionstring)3.打开防火墙允许我的本地机器连接到AzureSQLServer第1步:创建AzureSQL数据库第一步是创建AzureSQL数据库来托管SimplCommerce数据。我使用Azure门户创建一个新数据库。它将以向导的形式带我在AzureSQLServer上创建并合理配置。正如您在上图中所见,我选择的只是“基本定价层”。由于这只是一个测试应用程序,因此不需要很多“马力(资源)”。这就是AzureSQL服务器和数据库,我们现在需要连接到它。我想将我的本地计算机连接到SQLAzure数据库并将其用于本地开发。虽然将数据库与我的代码分开似乎效率低下,但实际上足以快速运行。第2步:修改应用程序中的连接字符串为了将SimplCommerce应用程序连接到数据库,我需要修改它的连接字符串。在ASP.NetCore中,这些设置位于appsettings.json和一些低级文件中。这些.json文件包含各种配置,就像前面的web.config文件一样。令人惊奇的是:它们根据您设置的环境变量工作。例如,您可以为环境变量更改创建一个appsettings.development.json文件。它是这样的:这里的环境变量是指ASPNETCORE_ENVIRONMENT变量。默认情况下,当您在VisualStudio中进行调试时,ASP.NetCore会使用该变量,其值为“development”。当您部署自己的应用程序时,此变量的默认值为“production”。您可以在您使用的任何托管环境中覆盖此变量,甚至在VisualStudio项目文件(projectfile)的设置中。不管怎样,为了将我的本地机器连接到数据库,我将数据库连接字符串放在appsettings.development.json文件中。第三步:打开防火墙让我的本地机器连接到AzureSQLServer但这还不够,AzureSQLServer默认启用了防火墙,阻止除Azure中的IP地址之外的所有IP地址访问服务器。因此,我需要将我的IP地址添加到防火墙以连接到服务器。您可以在Azure门户界面中设置AzureSQLServer。一切都设置好后,你会发现数据库还是空的,没有任何数据表。在GitHub上的SimplCommerce页面上,您会找到将各种表和数据填充到数据库中的具体步骤。这些数据库人口主要涉及运行实体框架迁移和SQL脚本。配置应用程序以使用StackifyRetrace在将应用程序部署到Azure之前,我需要准备它并将数据发送到StackifyRetrace,以便我们可以监控应用程序的运行情况。这是一个非常强大的监控工具,可以帮助我监控:?应用程序和相关组件的性能?应用程序的内部错误?应用程序的可用性以上***点非常重要,因为我想查看应用程序的全方位性能.这也意味着我还想看看我的各种相关组件(例如AzureSQL数据库)的性能如何并需要改进。我还需要包括应用程序错误通知和深入了解重要因素的能力。没有它,至少在用户反馈之前我不会知道错误,这将导致非常糟糕的用户体验。Retrace帮助我更深入地挖掘错误、追踪错误原因并修复错误。而这一切都可以通过简单的设置来实现。首先,我添加一个名为StackifyMiddleware的块包,你可以在VisualStudio中操作如下图或者在包管理器的控制台窗口中输入如下命令:Install-PackageStackifyMiddleware然后,你就可以在应用程序中激活所需的Stackify中间件在课堂里。在配置方法中,需要输入一行:app.UseMiddleware();注意,在插入这行语句之前,必须先定义app.UseMvc的声明。好了,现在一切就绪,我们可以开始将应用程序部署到Azure。将ASP.NETCore部署到Azure我希望应用程序在Azure中运行。为此,我将创建一个AzureWeb应用程序并将我的应用程序部署到其中。与其他类型的应用程序一样,ASP.NETCore应用程序在AzureWeb应用程序上运行。请记住,Azure将在2017年5月结束后不再支持旧版本的ASP.NETCore应用程序(即基于project.json格式)。我将使用VisualStudio将应用程序部署到Azure。这其实很简单,你只需右击ASP.NET应用程序的项目文件并选择publish(发布)。下面显示的向导将指导您实现它。如果您还没有,它甚至会为您创建一个全新的Web应用程序。完成后,我就有了一个运行该应用程序的Web应用程序。但是,它仍然无法运行。为此Web应用程序激活StackifyRetrace首先,我需要安装一个扩展,以便StackifyRetrace可以从Web应用程序捕获数据。我可以从Azure的门户网站完成。从那里,您可以转到Web应用程序的选项并选择扩展菜单(扩展菜单)并选择StackifyAPM+扩展,然后安装它。这将激活Stackify以捕获运行Web应用程序所需的各种资源指标,例如CPU、内存等。请记住,确保在安装此扩展后重新启动Web应用程序。配置Web应用程序接下来,我需要做的就是配置Web应用程序。记住?我已将数据库连接字符串放在appsettings.development.json文件中。这是因为默认情况下,应用程序在部署时不会使用development.json文件,因此无法连接到数据库。如您所见,我需要在Web应用程序的应用程序设置(ApplicationSettings)中为连接字符串赋值,这将覆盖数据库的连接配置设置,以允许应用程序连接到数据库。此外,我需要将Stackify.ApiKey及其值插入到应用程序的设置中。这将告诉StackifyWeb应用程序属于我的帐户,并允许我查看该应用程序的数据。您可以在Stackify帐户面板中找到此密钥。当然,如果您还没有帐户,则需要注册为期14天的订阅。我还建议您设置Stackify.AppName和Stackify.Environment属性。这些将出现在Stackify门户上,并帮助您识别您的应用程序。您可以阅读下面的链接,了解有关在Azure应用服务中设置StackifyRetrace的完整说明。http://support.stackify.com/hc/en-us/articles/206350463-APM-for-Azure-Web-Apps?StackifyRetrace的优势在后台运行时,我可以看到一些有趣的东西有关应用程序的信息。Stackify是一款SaaS产品,因此您可以在登录https://stackify.com后查看您的数据。从这里,我可以访问各种仪表板和指标,以根据自己的喜好进行自定义。我的最爱之一是性能仪表板。在这里,我可以很容易地看到我的应用程序的运行状态和各种性能。Retrace可以告诉我相关组件是什么,我可以查看它们。在这种情况下,如下所示,我转移到最耗时的AzureSQL数据库之一。我能够快速查看当前时间段内有多少失败请求。它后面显示的错误概述也很有帮助。它通知我应用程序中存在错误,您可以让它运行一段时间以获得概览。它将显示正在发生的错误数,并将它们显示为短堆叠跟踪线。您可以深入查看这些堆叠的跟踪行以查看有关错误的各种信息,包括HTTP请求和HTTP标头。此功能非常强大,可让您快速找到错误的根源并进行修复。【原标题】在Azure上部署(和监控)ASP.NETCore(作者:BarryLuijbregts)原文链接:https://dzone.com/articles/deploying-and-monitoring-aspnet-core-on-azure,转载请注明合作网站转载原译者及来源为.com]