使用ServiceBustigger的Azure函数不';在Xamarin.Android应用程序中无法工作

使用ServiceBustigger的Azure函数不';在Xamarin.Android应用程序中无法工作,azure,xamarin.android,azure-functions,azureservicebus,Azure,Xamarin.android,Azure Functions,Azureservicebus,我的Android应用程序调用我的Azure函数时不会触发 测试: public static class SubscribedFn { [FunctionName(nameof(SubscribedFn))] public static async Task Run([ServiceBusTrigger("Topic.courier-subscribed", "Subscription.all-messages", Connection= "ServiceBusConnecti

我的Android应用程序调用我的Azure函数时不会触发

测试:

public static class SubscribedFn
{
    [FunctionName(nameof(SubscribedFn))]
    public static async Task Run([ServiceBusTrigger("Topic.courier-subscribed", "Subscription.all-messages", Connection= "ServiceBusConnectionKey")]
                                  string json, ILogger log)
    {
        ... // NEVER INVOKED
    }
以下测试通过ServiceBusTrigger成功触发Azure功能:

[<Fact>]
let ``Publish message assigned to servicebus topic``() =

    // Setup
    let connectionstring = ConfigurationManager.ConnectionStrings.["servicebus_testEnv"].ConnectionString

    // Test
    async {

        let client  = TopicClient(connectionstring, "Topic.courier-subscribed")
        let data    = "test_data"
        let message = Message(Encoding.UTF8.GetBytes(data))

        do! client.SendAsync(message) |> Async.AwaitTask
        do! client.CloseAsync()       |> Async.AwaitTask
    }
Azure函数(ServiceBusTrigger):

public static class SubscribedFn
{
    [FunctionName(nameof(SubscribedFn))]
    public static async Task Run([ServiceBusTrigger("Topic.courier-subscribed", "Subscription.all-messages", Connection= "ServiceBusConnectionKey")]
                                  string json, ILogger log)
    {
        ... // NEVER INVOKED
    }
注意:

public static class SubscribedFn
{
    [FunctionName(nameof(SubscribedFn))]
    public static async Task Run([ServiceBusTrigger("Topic.courier-subscribed", "Subscription.all-messages", Connection= "ServiceBusConnectionKey")]
                                  string json, ILogger log)
    {
        ... // NEVER INVOKED
    }
  • 我已验证连接字符串与我的自动测试相同

  • 自动测试每次都会通过ServiceBusTrigger触发Azure功能

  • 我已经验证了我正在两个客户端中发送JSON作为有效负载


  • 您的设备可能存在网络问题。默认情况下,ServiceBus使用AMQP协议。在大多数情况下,传出连接上需要打开端口5671和5672

    对于您的Xamarin应用程序,我建议附加
    ;TransportType=AmqpWebSockets
    连接到您的连接字符串,看看是否有帮助

    端点=sb://xxxx.servicebus.windows.net/;SharedAccessKeyName=xxxx;SharedAccessKey=xxxxx;TransportType=AmqpWebSockets


    有什么消息吗?我的回答对你有帮助吗?你的回答对我有帮助。现在,即使在我的移动客户端上,我也会遇到一些关于任务被取消的例外情况。然而,不管抛出了哪些异常,Azure函数现在都是从我的应用程序触发的。谢谢。我读到所有输出端口默认都是打开的。还有什么我需要考虑的吗?