Microsoft.NET.Sdk.Worker 与 API 项目兼容吗?

2023-11-24

通过以下方式创建的 Visual Studio API 项目

“新项目”,

“ASP.NET Core Web 应用程序”,

“ASP.NET Core Web API”

结果是一个以...开头的项目文件

<Project Sdk="Microsoft.NET.Sdk.Web">

如果这个 API 需要长时间运行的任务,那么很可能BackgroundService是需要的。这个文件说以下是长期运行的服务应用程序的起点。

<Project Sdk="Microsoft.NET.Sdk.Worker">

Is Microsoft.NET.Sdk.Worker与 API 项目兼容,如果可以,如何将此项目信息添加到 API 项目中?


Both Microsoft.NET.Sdk.Web and Microsoft.NET.Sdk.Worker是默认项目 SDK 的扩展Microsoft.NET.Sdk添加在这些项目上下文中有用的某些默认值。

最初,只有普通 SDK 和 Web SDK,其中添加了许多对默认 ASP.NET Core 模板有意义的默认内容。其中一部分显然是对 Razor 的支持以及对特定于 Web 的事物的支持(例如wwwroot文件夹)。但也有一些默认值是由于默认 WebHost 使用配置文件设置的而引入的,例如appsettings.json还支持用户机密或 Visual Studio 中的文件嵌套。

当 ASP.NET Core 3.0 发明通用主机时,这为非 Web 项目开辟了主机和主机构建器模式。但由于所有这些特定于主机的默认值都是 Web SDK 的一部分,其中也有很多真正特定于 Web 的东西,因此团队提出了一个新的 SDK,即工作 SDK,用于将使用默认主机的项目构建器但不是网络项目。此工作 SDK 现在基本上包含 Web SDK 的子集,用于使用通用主机和默认主机构建器的项目。

Worker SDK 包含的所有内容都是 Web SDK 的一部分(至少据我所知,如果是的话,也可能只是一些小事情)。这也意味着您可以使用 Worker SDK 执行的所有操作在 Web SDK 中也应该同样有效。

As for BackgroundService or IHostedService一般来说:这些是通用主机附带的东西Microsoft.Extensions.Hosting。虽然建议为此使用工作人员(或网络)SDK,但该实现在技术上并不可行need它。特别是,Web SDK 也完全支持这一点,并且 ASP.NET Core 3.0 或更高版本的 Web 主机实际上是构建在托管服务之上的。

因此,如果您正在构建 ASP.NET Core 应用程序,那么您已经在使用主机构建器的托管服务。如果您需要添加其他托管或后台服务,除了网络主机之外,您只需注册这些服务即可,一切都会正常工作。

总结一下,就SDK功能而言,NET.SdkNET.Sdk.WorkerNET.Sdk.Web。因此,如果您想将托管服务添加到 ASP.NET Core Web 项目中,您可以直接执行此操作,但您不应该将 Web SDK“降级”为工作 SDK,因为那样您将错过特定于 Web 的服务ASP.NET Core 应用程序可能需要的功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Microsoft.NET.Sdk.Worker 与 API 项目兼容吗? 的相关文章

随机推荐

  • 是否可以在 Chart.js 中生成圆形雷达图?

    当我绘制标准 Chart js 雷达图时 轴是多边形 不是圆形 例如 是否可以将轴做成圆形 像这样 编辑 2021 10 27 Chart js v3已删除scale有利于的选择options scales r 这是使雷达网格呈圆形的更新方
  • 多线程 ViewController 中的 UIWebView

    我在视图控制器中有一个 UIWebView 它有以下两种方法 问题是 如果我在第二个线程完成之前弹出 重新点击导航栏 此控制器 应用程序将在 super dealloc 之后崩溃 因为 尝试从主线程以外的线程获取 Web 锁或Web 线程
  • 调用init方法失败;嵌套异常是 java.lang.IllegalArgumentException:方法公共抽象的查询验证失败

    我正在开发Spring MVC Spring data jpa querydsl我是新手 当我为 querydsl 编写代码时 在该代码工作正常之前 当我添加 querydsl 相关代码时 我开始收到以下错误 不确定出了什么问题 请指导 错
  • 如何为同一个函数设置不同的输入类型?

    我想做的基本想法是 def aFuncion string dicti if len str gt 0 print you gave string as input if len dicti gt 0 print you gave a di
  • 从我的应用程序登录 Facebook 可以在模拟器上运行,但不能在设备上运行

    这是我登录 Facebook 的代码 mLoginButton LoginButton findViewById R id login restore session if one exists SessionStore restore U
  • Firefox 无法正确显示 :before 和 :after 伪元素

    在除 Firefox 之外的所有其他浏览器上 网页看起来都很好 甚至是 Internet Explorer 伪元素漂浮在整个文档中 甚至在第一个元素显示后不显示 这种行为有什么解决办法吗 CSS span property dc date
  • 如何使用 php 编辑/更新 txt 文件

    在我阅读了文件上的编辑 更新功能的很多类似问题并且没有一个起作用之后 我想寻求一些帮助 我正在尝试编辑 txt来自 php ini 的文档我已经尝试过这些事情 这是我在这里阅读的最后一个代码 但它不起作用 data to write POS
  • ARM 汇编器 - 如何使用 CMP、BLT 和 BGT?

    问你们一个简单的问题 在我的循环中 我需要使用 CMP BLT 和 BGT 来比较一些值 如何在下面的循环中使用所述指令 我正在尝试使用 BGT BLT 和 CMP 因为我需要它们来使我的应用程序正常工作 问题是我不知道如何使用它们 如果我
  • 我可以传递 --max-concurrent-downloads 作为标志吗?

    我正在使用较差的互联网连接并尝试拉取并运行图像 我想一次下载一层 每个文档尝试添加一个平面 max concurrent downloads 如下所示 docker run rm p 8787 8787 e PASSWORD blah ma
  • SQLAlchemy 在 select 语句上占用内存

    根据 SQLAlchemy select 语句被视为 for 循环中的可迭代对象 其效果是 返回大量行的 select 语句不会使用过多的内存 我发现 MySQL 表上有以下语句 for row in my connections exec
  • 用于设置 pagefile.sys 大小的 PowerShell 脚本

    如何通过PowerShell设置Windows上页面文件 pagefile sys 的大小 这是我们通过 PowerShell 更新 pagefile sys 大小的方法 PowerShell Script to set the size
  • 比较没有时间成分的 NSDate

    在一个快速的操场上 我一直在使用 NSDate date 但是 它总是附加时间元素出现 对于我的应用程序 我需要忽略时间元素 这在斯威夫特中可能吗 如何做呢 即使我可以将时间元素设置为每个日期的同一时间也可以 另外 我正在尝试比较两个日期
  • 如何在 android Os 4.0 中构建默认浏览器应用程序

    我从以下位置下载了android默认浏览器应用程序的源代码here 并尝试从日食中构建它 它显示不同类中的各种构建错误 主要错误是由于导入造成的 因为它无法选择以下类 import android provider BrowserContr
  • 在 Xcode 6 Beta 4 中放松 Segue

    我一直在尝试向 Xcode 6 中的 swift 应用程序添加展开转场 并且在前三个测试版的发行说明中 它被声明为不受支持 然而 在 Beta 4 中 该错误说明不再存在 我听说人们能够让它发挥作用 但我却没有这样的运气 所以 我的问题是
  • 以编程方式添加自定义设置选项卡以管理 WooCommerce 中的产品数据

    我想以编程方式将设置选项卡添加到产品数据元框 如下所示 Verzendkosten 选项卡是通过 firebug 添加的 这意味着 运费 如何以编程方式在 woocommerce 编辑产品页面设置中添加 Verzendkosten 自定义选
  • 以编程方式呈现 Web UserControl

    我有一大堆UserControl对象 ascx文件 在他们自己的小项目中 然后 我在两个项目中引用该项目 REST API 这是一个类库项目 和主网站 我确信这在网站上很容易 只需使用Controls Add in any Panel或 A
  • 未调用自定义 AuthenticationProvider

    我想要一个基本的受身份验证保护的 REST 应用程序 我遵循了一般指示http www baeldung com spring security authentication provider为了让安全工作 我最终创建了我的实现Authen
  • Qt 5.5 与 qmake:链接器无法解析 OpenGL 函数调用

    当使用 Qt 5 5 qmake 和 MSVC 13 编译具有一些基本 OpenGL 函数调用的基本样板 Qt 应用程序时 我收到以下链接器错误 glwidget obj 1 error LNK2019 unresolved externa
  • Asp.net会员授权无需密码

    要对 Asp net 会员资格中的用户进行身份验证 我们可以调用方法 FormsAuthentication Authenticate username password 我怎样才能在没有用户密码的情况下完成同样的工作 生成会话 cooki
  • Microsoft.NET.Sdk.Worker 与 API 项目兼容吗?

    通过以下方式创建的 Visual Studio API 项目 新项目 ASP NET Core Web 应用程序 ASP NET Core Web API 结果是一个以 开头的项目文件