在Azure Service Bus中使用PHP时出错?

时间:2018-03-25 18:15:20

标签: php azure azureservicebus

我正在尝试使用PHP连接到Microsoft Azure中的服务总线队列,使用Azure指南中的以下代码:

<?php
    require_once 'vendor/autoload.php';
    use MicrosoftAzure\Storage\Queue\QueueRestProxy;
    use MicrosoftAzure\Storage\Common\Exceptions\ServiceException;
    use MicrosoftAzure\Storage\Queue\Models\CreateMessageOptions;
    $connectionString = "DefaultEndpointsProtocol=https;AccountName="name";AccountKey=key";
    // Create queue REST proxy.
    $queueClient = QueueRestProxy::createQueueService($connectionString);
    try{
        // Create message.
        $builder = new ServicesBuilder();
        $queueClient->createMessage("cmps297r1", "Hello World!");
    }
    catch(ServiceException $e){
        // Handle exception based on error codes and messages.
        // Error codes and messages are here:
        // http://msdn.microsoft.com/library/azure/dd179446.aspx
        $code = $e->getCode();
        $error_message = $e->getMessage();
        echo $code.": ".$error_message."<br />";
    }
?>

然而,当我运行它时,我收到此错误:

  

可捕获的致命错误:传递给MicrosoftAzure \ Storage \ Common \ Internal \ Service \ ServiceRestProxy :: __ construct()的参数4必须是MicrosoftAzure \ Storage \ Common \ Internal \ Serialization \ ISerializer的实例,给定的数组,在/ Applications /中调用第110行的XAMPP / xamppfiles / htdocs / 297R / vendor / microsoft / azure-storage / src / Queue / QueueRestProxy.php,在/ Applications / XAMPP / xamppfiles / htdocs / 297R / vendor / microsoft / azure-storage / src /中定义第77行的Common / Internal / ServiceRestProxy.php

2 个答案:

答案 0 :(得分:0)

您粘贴的代码对我来说很合适(除非您没有为use类添加ServicesBuilder语句,这会导致找不到&#34; &#34;错误)。

正如@Thuan Ng所提到的,上面的代码属于Azure存储队列,而不是服务总线队列。如果您使用的是Azure Service Bus,则需要参考此文档How to use Service Bus queues with PHP

答案 1 :(得分:0)

我知道这是旧帖子,但是您正在尝试创建存储队列而不是服务总线队列