As per this document http://msdn.microsoft.com/en-us/library/dn170478.aspx we have both ways of Authenticating available ACS and SAS. But if I create a Service Bus Namespace there is no ACS option under connection strings.
The document above has this statement “For example, if you create a Service Bus namespace called contoso.servicebus.windows.net, a companion ACS namespace called contoso-sb.accesscontrol.windows.net is provisioned automatically. For all namespaces that were created before August 2014, an accompanying ACS namespace was created.” I had missed this operative part as well, someone has rightly said “To err is human”, so don’t worry if even you missed this in the first read.
My colleague Jaganathan provided the following PowerShell steps which can be used to get the companion ACS namespace for new Service Bus namespace. But if federated authentication is not required by Service Bus we recommend using the SAS connection string in the application.
If want to use ACS authentication (old behavior), they will need to use the PowerShell command below to create the namespace.
1. Acquisition experience: http://www.windowsazure.com/en-us/documentation/articles/install-configure-powershell/
a. Download Azure PowerShell - http://go.microsoft.com/fwlink/p/?linkid=320376&clcid=0x409 b. Configure PowerShell to talk to Azure account: i. run the command "Add-AzureAccount" and provide Live ID user name/password to connect to a default Azure subscription.
2. Create a new Azure Service Bus namespace using the command – New-AzureSBNamespace -Name mynamespace -Location "Central US" -CreateACSNamespace $true -NamespaceType Messaging
The output should be something similar to Name : mynamespace Region : Central US DefaultKey : 1eKDTIYEACFP7Geiy5QV/hqJnWHeroJyKk/QAmv42Rw= Status : Active CreatedAt : 8/25/2014 3:36:47 PM AcsManagementEndpoint : https://mynamespace-sb.accesscontrol.windows.net/ ServiceBusEndpoint : https://mynamespace.servicebus.windows.net/ ConnectionString : Endpoint=sb://mynamespace.servicebus.windows.net/; SharedSecretIssuer=owner;SharedSecretValue=1eKDTIYEACFP7Geiy5QV/hqJnWHeroJyKk/QAmv42Rw=
3. Once created this way the portal will display ACS credentials, as before.
Note : For existing Service Bus namespace first delete the namespace from Azure Portal and recreate it from the PowerShell command. This will get re-created immediately if it’s being created in the same subscription. If the deletion and re-creation is being done in two distinct subscription then there is blocking period of 7 days and you need to wait for that.
Details - https://msdn.microsoft.com/en-us/library/azure/hh690930.aspx
Cloud Integration Engineering
I have used the command you have listed above in powershell and I keep receiving an error that the specified service namespace is not available. I tried to replace the namespace with something different and copy and paste your exact command. I still get the error. Could it because I am using a free trial of azure?
I receive the following error using your method of creating a new namespace...
"New-AzureSBNamespace : <string xmlns="schemas.microsoft.com/.../">Request to a downlevel
At line:1 char:1
+ New-AzureSBNamespace myapp 'West Europe' $true
+ CategoryInfo : CloseError: (:) [New-AzureSBNamespace], CloudException
+ FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.ServiceBus.NewAzureSBNamespaceCommand"
Open Azure Powershell and run the following command:-
Enter the credentials to connect to your azure account
and then run below command
New-AzureSBNamespace -Name <NameOfTheNameSpace> -Location <Region> -CreateACSNamespace $true -NamespaceType Messaging
I've created a small C# application that creates a new namespace using Azure REST API. Source code and executables can be found here mega.co.nz
Thank you for this post.
I ran the cmdlets and it was successful, but now it is not displaying in the azure management portal. I'm i missing something?
I Can connect to the service bus using the relay service i create.
Never mind my post..i just realized what happened. I was logged into the wrong azure account and it created the service bus there.
Just as an update i had to use the following cmdlet:
New-AzureSBNamespace -Name mynamespace -Location "Central US" -NamespaceType Messaging
when i click on given url to download Azure powershell:
it download this exe: WindowsAzurePowerShell.3f.3f.3fnew.exe, if we execute this it opens WEB PI which is throwing some error in logs.
Has any face this problem, is there any alternate link to download and configure azure powershell
this is correct url to download Azure PowerShell MSI directly, go.microsoft.com/fwlink
I am seeing this error.
New-AzureSBNamespace : A parameter cannot be found that matches parameter name 'CreateACSNamespace'.
At line:3 char:61
+ New-AzureSBNamespace -Name vargupsbtest -Location "West US" -CreateACSNamespace ...
+ CategoryInfo : InvalidArgument: (:) [New-AzureSBNamespace], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.WindowsAzure.Commands.ServiceBus.NewAzureSBNamespaceCommand
Does this script still work ??
I am trying to build a SQL LOB target in Azure BizTalk Services, initially I tried to create one through the Visual Studio and ran into the below error -
Message: 'Error occurred while trying to bring up the relay service. Error Message: 'The remote name could not be resolved: 'xxxxxx-ns-sb.accesscontrol.windows.net'
This is because to create an LOB target we require an Services bus which is authenticated using ACS, but from August 2014 the support for ACS authenticated SB has been replaced by SSA.
The workaround I found at several places was to use Azure PowerShell to create a new SB, but as it turns out the new Azure PowerShell SDK doesn't recognize the command itself -
New-AzureSBNamespace : A parameter cannot be found that matches parameter name 'useAcs'.
Any pointers workarounds here would really help.
Use Just the below script it works -
New-AzureSBNamespace -Name 'testLOB' -Location 'South Central US'
CreateACSNamespace parameter has been deprecated in latest version of Azure SDK [2.5 and above].
The "specified service namespace is not available" error may be caused by a name that is less than 6 characters.
I did the same thing and it worked but on using the connection string I'm getting this error:
Fatal error: Uncaught HTTP_Request2_LogicException HTTP_Request2 needs an absolute HTTP(S) request URL. What could be the solution for this??