我正在尝试使用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
答案 0 :(得分:0)
您粘贴的代码对我来说很合适(除非您没有为use
类添加ServicesBuilder
语句,这会导致找不到&#34; 类&#34;错误)。
正如@Thuan Ng所提到的,上面的代码属于Azure存储队列,而不是服务总线队列。如果您使用的是Azure Service Bus,则需要参考此文档How to use Service Bus queues with PHP。
答案 1 :(得分:0)
我知道这是旧帖子,但是您正在尝试创建存储队列而不是服务总线队列