我遵循了教程Visual Studio Code quickstart,并在本地创建了持久功能。在启动程序函数
中执行持久函数await client.startNew时收到错误消息const instanceId = await client.startNew(req.params.functionName, undefined, req.body);
以下是错误消息:
已执行“ Functions.HttpTrigger”(失败, Id = 84dc103d-bef9-4450-b4c6-9e612c6dc263)System.Private.CoreLib: 执行函数时发生异常:Functions.HttpTrigger。 System.Private.CoreLib:结果:失败异常:错误:写入EPROTO 101057795:错误:140770FC:SSL例程:SSL23_GET_SERVER_HELLO:未知 协议:openssl \ ssl \ s23_clnt.c:827:堆栈:错误:写EPROTO 101057795:错误:140770FC:SSL例程:SSL23_GET_SERVER_HELLO:未知 协议:openssl \ ssl \ s23_clnt.c:827: 在_errnoException(util.js:992:11) 在WriteWrap.afterWrite上[作为oncomplete](net.js:864:14)。
我的环境:
这是我的代码,只是从教程中复制的。
const df = require("durable-functions");
module.exports = async function (context, req) {
const client = df.getClient(context);
const instanceId = await client.startNew(req.params.functionName, undefined, req.body);
context.log(`Started orchestration with ID = '${instanceId}'.`);
return client.createCheckStatusResponse(context.bindingData.req, instanceId);
};
{
"bindings": [
{
"authLevel": "anonymous",
"name": "req",
"type": "httpTrigger",
"direction": "in",
"route": "orchestrators/{functionName}",
"methods": ["post"]
},
{
"name": "$return",
"type": "http",
"direction": "out"
},
{
"name": "starter",
"type": "orchestrationClient",
"direction": "in"
}
]
}
如何解决此问题?
答案 0 :(得分:3)
更新
自npm软件包durable-functions
v1.1.3起已解决此问题
您遇到了known issue。
这是由于current IWebHookProvider implementation所致,它导致DurableOrchestrationClient类使用错误的Webhook URL。解决方法是将本地环境变量WEBSITE_HOSTNAME设置为localhost :,例如。本地主机:7071
如果在设置环境之前已打开VS Code,请不要忘记重新启动它以使新的env变量生效。
答案 1 :(得分:2)
只是总结了我在有人遇到相同问题的情况下所做的事情。
在Windows 10中
在终端中键入指令以设置环境变量
setx WEBSITE_HOSTNAME“ localhost:7071”
关闭vs代码并重新启动