Javascript InvalidCastException:Azure持久函数错误
使用VSCode+JavaScript在本地测试Azure持久功能。能够成功触发HTTP触发的业务流程客户端,甚至可以看到请求头+正文—没有问题。但是,我在尝试触发Orchestrator时收到以下错误:Javascript InvalidCastException:Azure持久函数错误,javascript,visual-studio-code,azure-durable-functions,Javascript,Visual Studio Code,Azure Durable Functions,使用VSCode+JavaScript在本地测试Azure持久功能。能够成功触发HTTP触发的业务流程客户端,甚至可以看到请求头+正文—没有问题。但是,我在尝试触发Orchestrator时收到以下错误: context.bindings.patient = [{ FunctionName: "OrchestratorJS", Input: req, InstanceId: id }]; 无法将类型为“Microsoft.Azure.WebJobs.DurableOrc
context.bindings.patient = [{
FunctionName: "OrchestratorJS",
Input: req,
InstanceId: id
}];
无法将类型为“Microsoft.Azure.WebJobs.DurableOrchestrationContext”的对象强制转换为类型为“System.String”
我不明白为什么DurableOrchestrationContext试图转换为字符串。
调用编排器的代码:
context.bindings.patient = [{
FunctionName: "OrchestratorJS",
Input: req,
InstanceId: id
}];
注:
-我尝试只发送一个字符串作为输入,但没有效果。
-我已经成功地为另一个项目创建了持久函数,这使得这一点更加令人沮丧。函数运行时正试图将DurableCorchestrationContext转换为字符串,因为。与v1不同,v2通过与运行时主机不同的进程中托管的节点语言工作程序运行JavaScript函数。语言工作者和主机通过gRPC协议进行通信。调用函数时,运行时主机必须通过gRPC将绑定参数信息传递给函数。绑定到复杂对象(如DurableOrchestrationContext)的参数必须序列化为JSON字符串,通过gRPC传递,最后重新水化,以便函数使用它们 我们在1.4.0版本中引入了DurableOrchestrationContext到字符串的转换。您能尝试更新到扩展的最新版本(1.5.0)并再次尝试您的函数吗?因为我的一个字段(226个字段中的一个字段)是空的“”字符串,所以JSON序列化不知道如何处理它。显然,PowerShell(用作客户机)并不在意,但JSON.parse肯定在意。谢谢你提供的信息。希望函数将JSON作为对象或字符串发送,而不是尝试序列化JSON(以前的经验是使用二进制文件,所以以前没有这个问题)。