![](/img/trans.png)
[英]The listener for function 'IotHubTrigger' was unable to start. IoTHub
[英]The listener for function was unable to start. Why?
从 visual studio 运行 azure 函数时出现以下错误。
发生 ScriptHost 错误 [1/19/2018 6:40:52 AM] 函数“MyFunctionName”的侦听器无法启动。 Microsoft.WindowsAzure.Storage:服务器遇到内部错误。 请稍后重试。
当我通过运行func host start
命令从命令提示符运行时。 我收到以下警告。 然后它卡住了
通过实例 ID 获取的主机锁租约
.
找不到工作职能。 尝试公开您的作业类和方法。 如果您正在使用绑定扩展(例如 ServiceBus、Timers 等),请确保您已经在启动代码中调用了扩展的注册方法(例如 config.UseServiceBus()、config.UseTimers() 等) .).
Azure 函数版本: azure-functions-core-tools@2.0.1-beta.22
我正在使用存储帐户 Blob 容器和队列。
我正在连接到Development Storage account ,我已经检查过存储模拟器已启动。
{
"IsEncrypted": false,
"Values": {
"ConnectionStrings:Default": "Server=.\\SQLEXPRESS; Database=TestDb; Trusted_Connection=True;",
"ConnectionStrings:BlobStorageAccount": "UseDevelopmentStorage=true",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobsDashboard": "UseDevelopmentStorage=true",
}
}
供参考。
之前它工作正常,但我在 Visual Studio 中收到了这条消息。
您的许可证已经过时,必须更新。 检查更新的许可证以继续使用该产品
所以我只是删除了%localappdata%和%temp% ,然后我尝试运行 Azure 功能,在此之后,我开始获得
函数的侦听器无法启动错误
那么它与我的 visual studio 订阅有关还是我错误地删除了任何需要的文件? 或者这与其他事情有关?
对于遇到此问题的任何人,以下内容可能会有所帮助...
Azure Durable Functions 依赖于 TableStorage,而最新版本的 Azurite (v3) 目前不支持 TableStorage。 因此,拉取 Azurite 存储库并切换到legacy-master
(v2) 分支,然后运行npm run start
。
如果您在本地通过存储模拟器运行,则运行 func settings add AzureWebJobsStorage UseDevelopmentStorage=true
in local.settings.json
如果使用 func 使用普通 Azure 存储连接字符串,则必须在local.settings.json
设置 AzureWebJobsStorage
更多 观点
我刚刚见证了这一点。 此链接https://github.com/Azure/azure-functions-core-tools/issues/357表示本地存储模拟器可能未运行。 我停止调试。 转到 Cloud Explorer 并打开本地节点以查看 blob 内容。 这一定已经启动了本地存储模拟器。 当我再次点击运行时,Azure Functions Tools 启动了。
对我来说,出现此错误是因为我没有安装和运行 Storage Emulator。 您可以从以下链接将存储模拟器安装为 VS Code 插件。 安装后转到 VS Code 命令面板并运行Azurite: Start Blob Service
。 然后在本地运行您的函数。 它会正常工作。
https://marketplace.visualstudio.com/items?itemName=Azurite.azurite
我正在使用 VS-2022。 使用以下步骤解决了此问题。
使用以下命令在本地计算机中运行 Azurite
azurite --silent --location c:\azurite --debug c:\azurite\debug.log
在 local.settings.json 中,使用以下代码:
“价值观”:{
“AzureWebJobsStorage”:“UseDevelopmentStorage=true”}
(可选),启动模拟器并检查没有报错
而已!
我在 Azure 函数中使用ServiceBusTrigger
时遇到了这个问题。
在我的 Visual Studio 解决方案中,我有两个Azure Functions
并且我为我的两个 Functions 使用了相同的Subscription Name
,其中一个功能是将数据发送到 Azure 服务总线,另一个是接收数据。
发送
private const string _topicName = "factfinder_topic";
private const string _subscriptionName = "subs1";
private static ITopicClient _topicClient;
private static ILogger _logger;
[FunctionName("SendDataToSubscription")]
public static void Run([ServiceBusTrigger(_topicName, _subscriptionName, Connection = "ServiceBusConnectionString")] string mySbMsg, ILogger log) {
_logger = log;
PrepareSend().GetAwaiter().GetResult();
_logger.LogInformation($ "C# ServiceBus topic trigger function processed message: {mySbMsg}");
}
接受
private const string _topicName = "factfinder_topic";
private const string _subscriptionName = "subs1";
[FunctionName("FetchDataFromSubscription")]
public static void Run([ServiceBusTrigger(_topicName, _subscriptionName, Connection = "ServiceBusConnectionString")] string mySbMsg, ILogger log) {
log.LogInformation($ "C# ServiceBus topic trigger function processed message: {mySbMsg}");
}
正如您所看到的,在这两种情况下_subscriptionName
的值都是subs1
,这是错误的,因此在FetchDataFromSubscription
函数中将其更改为我的其他订阅名称( subs2
) 后,问题已解决。
我也遇到了同样的问题。 退出 Visual Studio 并再次打开它解决了我的问题。
我通过在 local.settings.json 文件中设置UseDevelopmentStorage=false解决了这个问题。
{
“IsEncrypted”:假,
“价值观”:{
"FUNCTIONS_WORKER_RUNTIME": "蟒蛇",
"AzureWebJobsStorage": "UseDevelopmentStorage=false"
}
}
我通过以下步骤解决了这个问题:打开一个新终端并输入“azurite”。 程序将打开并保持窗口打开。 打开 Visual Studio 并尝试再次运行该功能。 瞧啦。
对于遇到此类问题的任何人,请查看此链接。
清理 azure 存储本地容器后,它为我解决了这个问题。
对于在本地运行持久函数时遇到此错误的任何其他人,我发现处理它的最简单方法是使用 VSCode 扩展“持久函数监视器”。 我发现这是持久功能的绝佳资源; 使用扩展我删除了 Azurite 存储中的集线器,这很快。 任何先前执行的所有数据都与此错误一起被删除。
我也有这个问题,花了很多时间。 修复不是来自我,但我希望 onwer 可以接受它作为解决方案,它过去花了我很多时间,它可以帮助其他人。
对我来说唯一有效的修复程序写在上面的评论中:
azure-webjobs-hosts 中的计时器已损坏。 删除条目后已修复。 – Marcel Gelijk 2021 年 3 月 5 日 9:59
在我的情况下,如果您使用计时器触发器并对其进行许多更改,复制或将时间触发器切换到 http 触发器并返回,则可能会发生这种情况。 如果你为测试做一些事情,它可能会损害 azure-webjobs-hosts 中的冲突条目。
所以我删除了 locks 和 timers 文件夹中的所有条目。 在启动计时器 azure 功能时,所有条目都将更新并且有效
非常感谢 Marcel Gelijk。
[
在我的例子中,我删除了 %localappdata% 和 %temp% 文件夹中的所有内容,然后重新开始。
通过关注此博客解决。
https://markgossa.com/2018/12/azure-function-listener-for-function.html
"%programfiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe" init "%programfiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe" 启动
当我从Visual Studio运行azure函数时,出现以下错误。
发生ScriptHost错误[1/19/2018 6:40:52 AM]无法启动函数'MyFunctionName'的侦听器。 Microsoft.WindowsAzure.Storage:服务器遇到内部错误。 请稍后再试。
当我从命令提示符运行func host start
命令来运行func host start
。 我收到以下警告。 然后卡在
通过实例ID获取主机锁租约
。
找不到作业功能。 尝试公开您的工作类别和方法。 如果使用绑定扩展(例如ServiceBus,Timer等),请确保已在启动代码(例如config.UseServiceBus(),config.UseTimers()等)中调用了扩展的注册方法。 )。
Azure函数版本: azure-functions-core-tools@2.0.1-beta.22
我正在使用存储帐户Blob容器和队列。
我正在连接到Development Storage帐户,已检查它是否已启动存储模拟器。
{
"IsEncrypted": false,
"Values": {
"ConnectionStrings:Default": "Server=.\\SQLEXPRESS; Database=TestDb; Trusted_Connection=True;",
"ConnectionStrings:BlobStorageAccount": "UseDevelopmentStorage=true",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobsDashboard": "UseDevelopmentStorage=true",
}
}
供参考。
以前工作正常,但是我在Visual Studio中收到了此消息。
您的许可证已过时,必须更新。 检查更新的许可证以继续使用该产品
所以我只删除了%localappdata%和%temp% ,然后尝试运行Azure函数,然后,我开始获取
函数的侦听器无法启动错误
那么这与我的Visual Studio订阅有关还是我误删除了任何必需的文件? 还是这与别的东西有关?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.