当前位置: 首页 > 知识库问答 >
问题:

Microsoft的默认持久功能错误。Azure。网络工作。主机:无法绑定参数“启动器”

单耘豪
2023-03-14

我刚刚开始使用Azure函数,特别是持久函数。

我在https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-create-first-csharp

我添加了一个新的azure持久功能,默认代码显示在下面。

我看到我的库是持久函数版本2,所以我必须对类名进行一些更改才能解析(链接在上面讨论更改的链接中):

    [FunctionName("TestFunction")]
    public static async Task<List<string>> RunOrchestrator(
        [OrchestrationTrigger] IDurableOrchestrationContext context)
    {
        var outputs = new List<string>();

        // Replace "hello" with the name of your Durable Activity Function.
        outputs.Add(await context.CallActivityAsync<string>("TestFunction_Hello", "Tokyo"));
        outputs.Add(await context.CallActivityAsync<string>("TestFunction_Hello", "Seattle"));
        outputs.Add(await context.CallActivityAsync<string>("TestFunction_Hello", "London"));

        // returns ["Hello Tokyo!", "Hello Seattle!", "Hello London!"]
        return outputs;
    }

    [FunctionName("TestFunction_Hello")]
    public static string SayHello([ActivityTrigger] string name, ILogger log)
    {
        log.LogInformation($"Saying hello to {name}.");
        return $"Hello {name}!";
    }

    [FunctionName("TestFunction_HttpStart")]
    public static async Task<HttpResponseMessage> HttpStart(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")]HttpRequestMessage req,
        [OrchestrationClient]IDurableOrchestrationClient starter, ILogger log)
    {
        // Function input comes from the request content.
        string instanceId = await starter.StartNewAsync("TestFunction", null);

        log.LogInformation($"Started orchestration with ID = '{instanceId}'.");

        return starter.CreateCheckStatusResponse(req, instanceId);
    }

当我在本地运行它时,它会启动存储模拟器,但随后会出现几个错误:

微软蔚蓝色的网络作业。主机:错误索引方法“TestFunction\u HttpStart”。微软蔚蓝色的网络作业。主机:无法将参数“starter”绑定到类型IDurableOrchestrationClient。确保绑定支持参数类型。如果您使用的是绑定扩展(例如Azure Storage、ServiceBus、Timers等),请确保在启动代码中调用了扩展的注册方法(例如builder.AddAzureStorage()、builder)。AddServiceBus(),生成器。AddTimers()等)。

微软蔚蓝色的网络作业。主机:错误索引方法“TestFunction\u HttpStart”。微软蔚蓝色的网络作业。主机:无法将参数“starter”绑定到类型IDurableOrchestrationClient。确保绑定支持参数类型。如果您使用的是绑定扩展(例如Azure Storage、ServiceBus、Timers等),请确保在启动代码中调用了扩展的注册方法(例如builder.AddAzureStorage()、builder)。AddServiceBus(),生成器。AddTimers()等)。

为什么默认测试代码会出现这些错误以及如何修复它?

共有1个答案

微生毅
2023-03-14

您错过了在迁移文档---1. x中的Or敲定客户端属性更改为DurableClient到2. x中的DurableClient属性中提到的

 类似资料: