通过构造函数进行依赖项注入的 Azure Functions 找不到作业函数

2023-12-21

我使用 .NET 5 创建了 Azure Function 版本 3,并通过类的构造函数进行依赖项注入。请参阅下面的虚拟代码:

public class MyAzureFunction
{
    private readonly IMyRepository _myRepository;

    public MyAzureFunction(IMyRepository myRepository) 
    {
        _myRepository = myRepository;
    }

    [Function("MyAzureFunction")]
    public async Task Run([TimerTrigger("0 */15 * * * *")] TimerInfo myTimer, FunctionContext context)
    {
        ILogger logger = context.GetLogger("MyAzureFunction");
        logger.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");

        List<object> result = await _myRepository.GetAllAsync();

        // Keep going...
    }
}

在 - 的里面Startupclass 添加了范围。

[assembly: FunctionsStartup(typeof(MyNamespace.Functions.Startup))]
namespace MyNamespace.Functions
{
    public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {
            builder.Services
                .AddScoped<IMyRepository, MyRepository>();
        }
    }
}

程序文件如下所示:

public class Program
{
    public static void Main()
    {
        IHost host = new HostBuilder()
            .ConfigureFunctionsWorkerDefaults()
            .Build();

        host.Run();
    }
}

在 - 的里面.csproj文件里有这行代码:

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>net5.0</TargetFramework>
        <AzureFunctionsVersion>v3</AzureFunctionsVersion>
        <OutputType>Exe</OutputType>
    </PropertyGroup>
    <ItemGroup>
        <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
        <PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Timer" Version="4.1.0" />
        <PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.3.0" />
        <PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.6.0" />
    </ItemGroup>
    <!-- Skiped some lines -->
</Project>

问题是当我想运行Azure Function时。我收到这个警告:

未找到工作职能。尝试公开您的工作类别和方法。如果您使用绑定扩展(例如 Azure 存储、ServiceBus、计时器等)确保您已在启动代码中调用了扩展程序的注册方法(e.g. builder.AddAzureStorage(), builder.AddServiceBus(), builder.AddTimers(), etc.).

我尝试过接下来的事情:

  1. 我已经添加builder.AddTimers()在 - 的里面Startup类但是IFunctionsHostBuilder不包含它的定义。即使我添加Microsoft.Azure.Functions.Worker.Extensions.Timer https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Timer.

  2. 使内部一切都静态MyAzureFunction但不起作用,因为静态构造函数不能包含参数。

  3. Also builder.Services.AddTimers() (像文档 https://learn.microsoft.com/en-us/azure/azure-functions/functions-dotnet-dependency-injection#register-services)没有定义。

我现在的问题是如何使用 Azure Functions 和 .NET 5 使用构造函数来使用依赖项注入。


在 Program.cs 中执行以下操作。 (确保添加命名空间的引用)

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace FunctionApp2
{
    public class Program
    {
        public static void Main()
        {
            var host = new HostBuilder()
                .ConfigureServices(services =>
                {
                    services.AddScoped<IMyRepository, MyRepository>();
                })
                .ConfigureFunctionsWorkerDefaults()
                .Build();

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

通过构造函数进行依赖项注入的 Azure Functions 找不到作业函数 的相关文章

  • C++ 中本地类中的静态成员变量?

    我知道我们不能宣布static本地类中的成员变量 但其原因尚不清楚 那么请问有人可以解释一下吗 另外 为什么我们不能访问非static函数内部定义的变量 内部已经定义了局部类 直接在局部类成员函数中 在下面给出的代码中 int main i
  • Unix网络编程澄清

    我正在翻阅这本经典书籍Unix网络编程 https rads stackoverflow com amzn click com 0139498761 当我偶然发现这个程序时 第 6 8 节 第 179 180 页 include unp h
  • 在 Unity 进程和另一个 C# 进程之间进行本地 IPC 的最快方法 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望每秒大约 30 次从 C 应用程序向我的 Unity 应用程序传送大量数据 由于 Unity 不支持映射内存和管道 我考虑了 t
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 使用 JNI 从 Java 代码中检索 String 值的内存泄漏

    我使用 GetStringUTFChars 从使用 JNI 的 java 代码中检索字符串的值 并使用 ReleaseStringUTFChars 释放该字符串 当代码在 JRE 1 4 上运行时 不会出现内存泄漏 但如果相同的代码在 JR
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • 如何在按钮单击时模拟按键 - Unity

    我对 Unity 中的脚本编写非常陌生 我正在尝试创建一个按钮 一旦单击它就需要模拟按下 F 键 要拾取一个项目 这是我当前的代码 在编写此代码之前我浏览了所有统一论坛 但找不到任何有效的东西 Code using System Colle
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi
  • 使用 GROUP 和 SUM 的 LINQ 查询

    请帮助我了解如何使用带有 GROUP 和 SUM 的 LINQ 进行查询 Query the database IEnumerable
  • 使用 GhostScript.NET 打印 PDF DPI 打印问题

    我在用GhostScript NET http ghostscriptnet codeplex com打印 PDF 当我以 96DPI 打印时 PDF 打印效果很好 但有点模糊 如果我尝试以 600DPI 打印文档 打印的页面会被极大地放大

随机推荐

  • Bootstrap面板折叠当您单击其中的链接时折叠

    在下面的 HTML 页面中 Heading 1 and Heading 2当页面第一次加载时正确折叠 因为我正在使用class panel collapse collapse Then Collapse Expand当用户单击时工作正常He
  • 在 XAML 中将密码框中的文本居中

    我试图将文本放在密码框中居中 在 Blend 中 用于对齐的文本属性全部被禁用 还有其他方法可以做到这一点吗 感谢您的帮助 Horizo ntalContentAlignment 在 WPF 中工作 但不幸的是在 Silverlight 中
  • 我怎样才能指导更少的人忽略某些风格的数学?

    我正在使用新的calcCSS 中的函数获取对象的宽度 如下所示 width calc 100 40px 不幸的是 由于这是在 LESS 文件中 因此 LESS 在编译时 有效 地将其预先转换为 60 我希望更少地忽视数学calc函数 因为我
  • 如何在 React 应用程序中排除全局样式?

    我在用材质用户界面 https material ui com 用于构建我的 React 项目 然而 有一个组件必须嵌入到不同的站点 意思是 我提供该组件的生产版本以将其嵌入到不同的站点 My React 应用程序的 css正在被覆盖全局样
  • 如何在一个 EC2 实例上运行多个应用程序

    我有几个小型生产站点和一堆有趣的爱好者 实验应用程序等 我想在一个 EC2 实例上运行所有这些 我可以安装一次node js npm express 和 couchdb 然后在不同的端口上运行每个应用程序 并调整我的域注册表中的 dns 设
  • Numpy loadtxt 对数字进行四舍五入

    我正在使用 numpy loadtxt 函数读取大量数据 数据似乎已四舍五入 例如 文本文件中的数字是 3 79000000000005E 01 但 numpy 读取的数字是 37 9 我已在 loadtxt 调用中将 dypte 设置为
  • 相对 z 指数?

    我有一个弹出的 对话框 小部件 其 z 索引为 100 当我创建另一个弹出窗口 浮动 div 时 它出现在对话框小部件下方 因为我没有显式设置 z 索引新的弹出窗口 结构最终看起来像 div div div div div div div
  • Django 重定向功能保留旧的 url 路径

    问题是当我尝试使用时django shortcuts redirect在我的视图函数中 Django 不只是简单地打开新的 url 路径return redirect url 但将所需的 url 路径添加到当前 url 例子当前网址是 主页
  • 将二维数组传递给 C 函数的方法

    我一周前开始学习C语言 为了测试 我决定编写一个井字游戏 我有一块田地 int field 3 3 和一个函数 printField void printField int field 3 3 for int i 0 i lt 3 i fo
  • Java XPath 计算返回类型

    有没有办法确定 XPath 评估的返回类型是什么 我希望 XPath 尽可能通用地匹配 它应该匹配一个节点列表 如果不能匹配 则匹配一个节点 如果不能匹配 则匹配一个值 有没有一种简单的方法可以在Java中实现这个功能 JAXP XPath
  • 发生异常时记录响应正文

    我在用retrofit对于 http 调用gson作为转换器 在某些情况下 当 gson 尝试将响应转换为对象时 我会抛出异常 我想知道在这种情况下的实际响应是什么 例如 这是我收到的异常消息 Expected a string but w
  • 使用 linq 更新对象集合中的属性

    有一个对象列表 其对象结构如下 public class Schedule public int ID get set public string Name get set public Schedule 对数据执行 linq 查询我可以看
  • Android - 立即启动闹钟服务?

    我创建了一个启动接收器 每 5 分钟重复调用一次唤醒意图服务 但无法弄清楚如何在安装应用程序后立即启动该服务 我不想依赖用户在设备开始运行之前重新启动设备 到目前为止 这是我的代码 public class OnBootReceiver e
  • 让 Rails #destroy_all 运行得更快

    我想跑Alarm destroy all不过 每个警报都与许多警报相关联AlarmEvents 并且每个AlarmEvent与许多相关AlarmEvent Measurements 两个关联都标记为 dependent gt destroy
  • 如何强制输入日期格式为 dd/mm/yyyy? [复制]

    这个问题在这里已经有答案了 我有一个小问题 我正在开发一个网络系统 表单字段类型日期让我很头疼 该系统仅适用于巴西用户 因此日期格式应为 dd mm yyyy 当从使用葡萄牙语的计算机访问该网站时 HTML 表单字段类型的日期按照我想要的方
  • WPF RichTextBox 拼写检查 ComException

    我在尝试在某些 Windows 8 1 计算机上启用拼写检查时遇到异常 两者都有最新更新 操作系统语言是俄语 NET Framework 4 7 是俄语 System Reflection TargetInitationException
  • 使用 MouseUp 和 MouseDown 事件或其他事件模拟单击的最佳方法是什么?

    在 WPF 中 大多数控件都有MouseUp and MouseDown事件 以及鼠标按钮特定的变体 但不是简单的Click可以立即使用的事件 如果您想使用这些事件获得类似点击的行为 您需要处理这两个事件 我认为这有点痛苦 明显的问题是你不
  • 在两个 Rails 项目之间共享模型 - 使用 git 子模块?

    我有一个 Rails 网站 它分为两个独立的项目 公共网站和管理网站 由于两个站点都使用相同的数据库 因此模型在应用程序之间共享 实际上现在它们是重复的 我这里遇到的问题是 当公共项目中发生模型更新时 我需要将更改复制到管理项目中 我环顾四
  • Solr 停用词替换为 _ 符号

    我的自动建议中的 solr 停用词有问题 所有停用词均替换为 符号 例如 我在字段 deal title 中有文本 简单文本 当我尝试搜索单词 简单 时 solr 显示下一个结果 简单文本 但我期望 简单文本 有人可以解释一下为什么会这样工
  • 通过构造函数进行依赖项注入的 Azure Functions 找不到作业函数

    我使用 NET 5 创建了 Azure Function 版本 3 并通过类的构造函数进行依赖项注入 请参阅下面的虚拟代码 public class MyAzureFunction private readonly IMyRepositor