当前位置: 首页 > news >正文

网站设计高大上公司logo在线设计免费

网站设计高大上,公司logo在线设计免费,学做网站论坛vip码,自己怎样注册企业网站WebJobs不是Azure和.NET中的新事物。 Visual Studio 2017中甚至还有一个默认的Azure WebJob模板#xff0c;用于完整的.NET Framework。 但是#xff0c;Visual Studio中以某种方式遗漏了.NET Core中WebJobs的类似模板。 在这篇文章中#xff0c;我使用的是.NET Core 2.1来创… WebJobs不是Azure和.NET中的新事物。 Visual Studio 2017中甚至还有一个默认的Azure WebJob模板用于完整的.NET Framework。 但是Visual Studio中以某种方式遗漏了.NET Core中WebJobs的类似模板。 在这篇文章中我使用的是.NET Core 2.1来创建WebJobs。在.NET Core中创建WebJob并不难但你必须知道一些技巧特别是如果你想使用一些.NET Core好特性比如日志和DI。在这篇文章中我们将构建一个WebJob并使用Visual StudioAzure门户和VSTS将其发布到Azure。什么是WebJobsWebJob是在App Service后台运行的程序。 它与您的Web应用程序在相同的环境中运行无需额外费用。 也许你需要做一些每小时任务或每天凌晨1点做一些清理工作。 Azure Application Insights使用WebJob报告应用程序的统计信息。WebJobs可以按小时或每天安排但也可以触发。 触发器可以是文件上载或队列上的新消息。WebJobs 对比 Functions我经常在WebJobs和Azure Functions之间比较。 在某种程度上Functions是WebJobs的后继者。 Functions通常是在Azure中运行的一小段代码就像WebJobs一样在某个事件中触发包括HTTP触发器。Functions通常是WebJobs的一个很好的替代品但如果你已经有了一个Web应用程序那么使用WebJob就可以了。 特别是当您想在WebJob和Web应用程序之间共享代码或设置这也使部署非常容易因为它们在相同的上下文中运行。创建一个Storage账户在我们继续之前先让我们先处理一下。 WebJob需要Azure Storage账户。 我将快速引导您完成创建过程。在Azure中找到“Storage Azure( 存储帐户)”并添加一个。 您必须选择一个在Azure中唯一的名称。 除此之外您可以保留默认值。一旦你的 Storage Account就绪选择它并找到您的“Access keys访问密钥”。 我们稍后需要的两个连接字符串之一。创建WebJob前面已经说过完整的.NET Framework有一个WebJob模板。 我建议你看看。 首先创建一个ASP.NET Web应用程序然后添加一个新的WebJob。 如果您尝试立即创建WebJob则会收到错误消息指出项目需要先保存尽管它确实创建了WebJob。这边文章写的是.NET Core的WebJob。 首先创建一个ASP.NET Core Web应用程序然后将新的.NET Core Console应用程序项目添加到您的解决方案中。我们需要做的第一件事是从NuGet安装Microsoft.Azure.WebJobs包。 我们还应该安装Microsoft.Azure.WebJobs.Extensions。 这些库的最新稳定版本依赖于完整的.NET Framework因此我们将需要3.0.0-beta5版本在撰写本文时它与.NET Core完全兼容。我们需要的其他NuGet包是Microsoft.Extensions.Options.ConfigurationExtensions它还提供了我们还需要的Microsoft.Extensions.Options包Microsoft.Extensions.DependencyInjection和Microsoft.Extensions.Logging.Console。 请确保安装这些软件包的2.1.0版本因为.NET Core 2.1中似乎存在一个错误导致您无法使用包含修补程序版本的软件包例如2.1.1。添加到Program.cs文件我们需要做的下一件事是更改我们的Program.cs文件。 如果您使用.NET Framework模板创建了WebJob则只需复制并粘贴在那里生成的Program.cs文件您可能需要更改命名空间。添加配置和依赖您会用到.NET Core里面好的特性比如日志和DI。 默认情况下Console App不具备任何功能但您可以自行添加。接下来创建一个appsettings.json文件并将“复制到输出目录”属性设置为“始终复制”。 appsettings.json文件应该有两个连接字符串如Program.cs模板文件中所述。 这些是我们之前创建的存储帐户连接字符串。接下来我们需要的是一个自定义的IJobActivator可用于将依赖项注入到我们的类中。 它需要在Program类的JobHostConfiguration上设置。添加Trigger(触发器)之后创建一个类并将其命名为Functions就像在WebJob模板中一样。 Functions类将包含WebJob的实际代码。当然我们需要添加一个触发器。 这与完整的.NET Framework不同。 毕竟模板使用静态方法这使得DI无法实现。 说到DI请注意我们还将Functions类本身添加到DI容器中。为简单起见我们将使用TimerTrigger它由所谓的CRON表达式触发。 这只是意味着它在某一分钟小时一天等时触发。在这个例子中它会触发每一分钟。我们还需要在JobHostConfiguration上配置计时器。var config new JobHostConfiguration(); config.JobActivator new JobActivator(services.BuildServiceProvider()); config.UseTimers();运行示例如果您正确地执行了所有操作或者如果您正在从GitHub运行我的代码那么您现在应该能够运行控制台应用程序。 如果您在例外情况下中断或者您正在观看“输出”窗口您可能会注意到很多StorageExceptions。 不要担心它们忽略它们。 这是WebJobs库中的一个错误不会影响您的程序。 您的触发器可能需要一分钟才会消失所以要有一点耐心。如果您转到Azure存储帐户您应该看到两个Blob容器“azure-jobs-host-output”和“azure-webjobs-hosts”。 这里有很多东西但你可以忽略它。 我发现我的WebJob触发器由于某种原因不会消失删除Blob容器通常会有所帮助。 显然存储在那里的某些状态在重新添加和删除WebJobs时并不总是正确处理掉。 发布到Azure我们要做的下一件事是将WebJob部署到Azure。为了运行WebJob需要一些可以用来运行的可执行脚本。支持许多文件类型但对于我们Windows用户来说使用execmdbat或PowerShell文件。控制台应用程序曾经是一个exe文件但在.NET Core中它会生成一个我们需要手动启动的常规DLL文件。因此创建一个文件并将其命名为“run.cmd”并确保它以UTF-8编码没有BOM您可以使用Notepad 之类的东西来检查。它只需要一行代码即“dotnet NetCoreWebJob.WebJob.dll”。这会运行您的控制台应用。确保将文件的“复制到输出目录”设置为“始终复制”。最后一件事由于某种原因Azure WebJobs需要WebJob的所有依赖项这意味着我们用来构建它的所有.NET Core包。您可以通过编辑csproj文件并将“CopyLocalLockFileAssemblies true / CopyLocalLockFileAssemblies”添加到第一个PropertyGroup在“TargetFramework”下面来完成此操作。在我们部署WebJob之前我们需要部署我们的Web应用程序。右键单击ASP.NET项目然后单击“发布...”。只需按照向导操作Visual Studio就会为您部署您的应用程序。您可以创建新的Web应用程序或选择现有的应用程序。此步骤并非严格必要因为您可以托管独立的WebJobs但这应该是熟悉的它为您提供了我们可以用于WebJob的App Service。使用Visual Studio发布使用Visual Studio部署WebJobs应该很容易。事实上你可能已经知道如何做到这一点尽管不这样做。右键单击WebJob项目然后单击“发布...”。以下向导看起来很像我们刚刚做的Web应用程序的发布。您可以选择“选择现有”并选择我们刚创建的Azure Web应用程序。不幸的是微软以最糟糕的方式搞砸了这个功能。 Visual Studio将使用与项目相同的名称部署WebJob即“NetCoreWebJob.WebJob”除了dot是WebJob名称中的非法字符这搞砸了我的项目非常糟糕我不得不手动编辑它以使我的解决方案再次运行。所以这就是你做的。在向导开始时您可以选择新的或现有的App Service单击“立即发布”旁边的箭头然后选择“创建配置文件”。现在您可以先在设置中更改WebJob的名称然后再进行部署。确保您没有选择“删除目的地的其他文件”否则您将删除您的网络应用程序。现在浏览到Azure门户并查找您的Web应用程序。你会在菜单中找到“WebJobs”。你会看到你的WebJob但它没有做任何事情。您需要通过选择它并单击“运行”来手动运行它。状态应更新为“正在运行”。您现在可以查看日志以确定它确实有效。您可能会看到有关连接字符串的错误但您可以忽略它们。如果您切换输出您仍然会看到一个日志写入控制台让您知道它的工作原理如果您没有立即看到日志请尝试等待一两分钟不要忘记手动刷新输出。Azure WebJobs图使用Azure Portal发布添加新的WebJob时您需要填写一些选项。 您可以组成一些名称将类型设置为“已触发”将触发器设置为“手动”。 你的选择是一个“连续”WebJob它只是运行和关闭除非你在你的应用程序中实现了无限循环; 以及“预定”触发的工作这基本上就是我们所拥有的除非我们自己实施了计划。“文件上传”需要一些解释。 在这里您可以上传包含WebJob的zip文件。 因此请转到Visual Studio并构建您的解决方案。 然后转到WebJob项目的输出文件夹例如“MyProject \ bin \ [Debug | Release] \ netcoreapp2.1”并将该文件夹中的所有内容放入zip文件中。 然后在新WebJob的“文件上传”中选择它。添加 WebJobAzure需要几秒钟才能创建您的WebJob因此请在刷新之前保持刷新。 之后您必须再次手动启动它您可以查看日志。使用VSTS发布最终我们希望将我们的WebJob添加到VSTS中的CI / CD管道中。 不幸的是这个功能并不是即拿即用的。 幸运的是这也不是很困难。当您在Azure门户中时找到App Service的“App Service Editor预览”。 这使您可以浏览App Service中的所有文件。 我们注意到的一件事是您的WebJob位于“App_Data \ jobs \ triggered \ [WebJob名称]”中。 由于您的WebJob实际上只是WebJob项目构建的输出因此只需将WebJob文件复制到App_Data即可。WebJob文件位置  构建所以去VSTS并创建一个新版本。选择存储库分支然后选择“ASP.NET Core”作为模板。我们只需要在这里改变两件事。我们需要更改现有的“发布”任务并添加新的“.NET Core”任务来发布我们的WebJob。将现有发布任务的名称更改为“发布Web应用程序”取消选中“发布Web项目”复选框然后输入“项目路径”即“** / NetCoreWebJob.csproj”。此外取消选中“Zip Published Projects”和“Add project name to publish path”复选框因为它们最终会破坏我们的版本。之后创建一个新的.NET Core任务将“Command”设置为“publish”并将任务名称更改为“Publish web job”。再次取消“发布Web项目”并设置“项目路径”即“** / NetCoreWebJob.WebJob.csproj”。再次不要压缩已发布的项目或将项目名称添加到发布路径。这里的最后一步是“Arguments”字段可以从其他发布步骤复制/粘贴除了我们要添加一点“ - configuration BuildConfiguration−outputBuildConfiguration−outputbuild。 artifactstagingdirectory\ App_Data文件\ \作业引发\ WebJobVSTS”。VSTS WebJob构建发布最后但并非最不重要的是发布。 在VSTS中创建新版本选择“Azure App Service部署”模板并填写空白这是工件和环境中的Azure设置。 因为我们没有压缩我们的构建所以我们只需要更改一个设置。 在“部署Azure应用程序服务”任务是“包或文件夹”设置其默认值为“[...] / * .zip”显然不起作用。 而是使用浏览器带有“...”的按钮并选择您的drop文件夹。保存点击新版本并选择最新版本。 如果一切顺利您应该在Azure门户中看到新的WebJob结束语喜欢这篇文章就转载吧不要直接copy过去哦原文地址和源代码使用.NET Core 2.1的Azure WebJobs原文地址https://www.cnblogs.com/bruceday/p/9606725.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://wiki.neutronadmin.com/news/227641/

相关文章:

  • 网站优化建设安徽百度网首页登录入口
  • 网站开发市场前景百度最新版app下载安装
  • 海淀教育互动平台网站建设如何做搞笑原创视频网站
  • 如何建设一个网站站佛山贸易网站建设
  • 陕西省建设集团公司网站上海网站建设公司兴田德润可以不
  • 不用花生壳做网站服务器wordpress 反应慢
  • j2ee大型网站开发框架宝洁公司网站建设案例
  • 软件开发可以做网站么整装公司排名前十强
  • php如何自学做网站即墨今天新闻大事
  • A00网站建设河北廊坊公布新增阳性人员轨迹
  • 怎么知道一个网站的权重永灿网站建设公司
  • 兰州网站排名分析博客seo优化技术
  • 企业建站系统漏洞网络营销是做什么
  • 阿里巴巴网站建设缺点创建全国文明城市我们在行动绘画
  • 蒙牛企业网站建设规划书帮别人发广告赚钱平台
  • 设计比例网站天猫网站建设的目标
  • 男女做那事是什 网站wordpress实现专题
  • 网站开发团队人数构成网站开发流程asp
  • 地方网站建设方案广州网站建设联系电话
  • 做调像什么网站找活品牌展示型网站源码
  • 苏州教育学会网站建设十大手游折扣平台app
  • 网站对接如何做青岛城乡建筑设计院有限公司
  • 自做美食哪些网站石家庄局域网网站建设
  • 备案网站可以做论坛么网站带数据库下载
  • 百度网站是百度公司做的吗东莞网页设计
  • 长春哪家做网站便宜wordpress付费查看内容
  • 免费做网站视频ie不能显示wordpress图片
  • 东莞做一个企业网站中国设计师排名
  • 科技园区建设网站的意义宁波网络公司在哪里
  • .net开发微信网站流程中国空间站完整图