Ich versuche, mit PHP eine einfache Verbindung zum Azure-Servicebus herzustellen und kann sie nicht zum Laufen bringen. Ich erhalte den Fehler:Absolute HTTP (S) -Anfrage-URL im Azure-Servicebus
1: HTTP_Request2 needs an absolute HTTP(S) request URL, 'sb://mynamespace.servicebus.windows.net/myqueue/messages' given
Dies ist der Code, den ich jetzt bin versucht zu laufen:
<?php
require_once '../vendor/autoload.php';
use WindowsAzure\Common\ServicesBuilder;
use WindowsAzure\Common\ServiceException;
use WindowsAzure\ServiceBus\Models\BrokeredMessage;
// Create Service Bus REST proxy.
$connectionString = "Endpoint=sb://mynamespace.servicebus.windows.net/;SharedSecretIssuer=owner;SharedSecretValue=[MyVal]";
$serviceBusRestProxy = ServicesBuilder::getInstance()->createServiceBusService($connectionString);
try {
// Create message.
$message = new BrokeredMessage();
$message->setBody("my message");
// Send message.
$serviceBusRestProxy->sendQueueMessage("myqueue", $message); // this is the line that causes the error
}
catch(Exception $e){
// Handle exception based on error codes and messages.
// Error codes and messages are here:
// http://msdn.microsoft.com/library/windowsazure/hh780775
$code = $e->getCode();
$error_message = $e->getMessage();
echo $code.": ".$error_message."<br />";
}
?>
Ich verstehe nicht, wo dies nicht in Ordnung ist. Hat jemand eine Idee, was ich tun kann, um diesen Fehler zu vermeiden?
Vielen Dank für Ihre Antwort! Ich denke, die Verwendung der Verbindungszeichenfolge aus dem klassischen Portal ist veraltet. Diese Lösung funktioniert auch nicht, denn dann kann der Service Builder die Instanz nicht vom Servicebus holen. Bei der Verwendung meiner Verbindungszeichenfolge, die durch Erstellen des Namespace über PowerShell erhalten wurde, kann die Instanz abgerufen werden. Das Problem ist jedoch, wenn ich versuche, sie stattdessen zu senden. Dieser Code stammt eigentlich aus diesem Beispiel. :) – DaveLar
Also meine Schlussfolgerung ist, dass es der PHP-Code ist, der falsch ist. Liege ich falsch? – DaveLar