我只是不明白为什么这个函数不能启动。
我的服务总线队列中有一条活动消息。
我的local.settings.json文件具有正确的队列名称和总线连接字符串,它们在主函数类中被正确引用。
我已经检查了我的代码agaisn 't在微软文档中的例子,它看起来是正确的。
当我在调试中运行它时,CLI选择正确的函数,然后记录获取的主机锁,但不做其他任何事情。
我试过了。。
- 将;TransportType=AmqpWebSockets添加到连接字符串
- 在主函数类而不是JSON设置文件中显式键入队列名称
- 将新消息发送到队列
- 刷新队列
但它就是不起作用,我想知道还有什么可以尝试?
正在运行以下...
.NET核心- 3.1
Azure核心工具- 3.0
功能版本-3.3.1
掘金
Azure.Messaging.ServiceBus - 7.5.1
Microsoft.Azure.WebJobs.Extensions.ServiceBus - 5.2.0(我正在使用新的ServiceBusReceivedMessage类型)
Microsoft.NET.Sdk.Functions - 3.0.13
我还没有达到发布的阶段,仍然只是让它首先在本地运行。
谢啦,谢啦
public static class Function1
{
[FunctionName("Function1")]
public static async Task Run([ServiceBusTrigger("MessageQueueName", Connection = "ServiceBusConnectionString")] ServiceBusReceivedMessage message, ILogger logger)
{
var bus = new AzureBus(Environment.GetEnvironmentVariable("ServiceBusConnectionString", EnvironmentVariableTarget.Process)).SendOnly();
var endpoint = new Endpoint(bus, logger);
logger.LogInformation($"Message received from bus - {message}");
await endpoint.Start();
await bus.Handle(message);
}
}
字符串
3条答案
按热度按时间bxjv4tth1#
TransportType
不是连接字符串的有效标记,服务总线客户端库将忽略它。要使用Web Socket传输,最简单的方法是在host.json
中指定它:字符串
l2osamch2#
你能分享一下你的主类的代码片段吗?它应该看起来像这样:
字符串
如果使用MessageReceiver,您需要自己处理DeadLetter/完成消息
编辑:确保你有存储模拟器运行
yruzcnhs3#
你能检查安装的nuget包中的Microsoft.NET.sdk.Functions的版本吗?应该是= 4.2.0。