Quantcast
Channel: Service Bus forum
Viewing all 1916 articles
Browse latest View live

Queu Limitation for Namespace for Service Bus


Service bus relay timeout when executing a long operation: 50400: Gateway Timeout.

$
0
0

We are using the service bus relay to connect our shiny new web application with our customer's on premise installations of our legacy product. Some of the calls might take a long time to complete (calculations lasting a couple of minutes) however these long operations give the following exception:

Type: System.ServiceModel.FaultException, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Message: 50400: Gateway Timeout.TrackingId:2fd3b03a-7562-4aa3-9ed6-e685cdc1cd99_G10,TimeStamp:8/7/2014 1:40:35 PM

Call stack (upto the first line of our own code):

System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
Vbi.Erbis.Relay.Interfaces.IErbisRelay.ExecuteMethod(String userName, String password, String className, String operationName, Object[]& parameters)

Other info:

To be sure it was the service bus relay giving us problems we have set WCF binding timeouts to 1 hour (Send, Receive, Open, Close). We are using the BasicHttpRelayBinding (and won't be able to use the NetTcpRelayBinding due to firewall restrictions at some of our clients).

How can I set this timeout to a higher value?

How to Configure On-Premise WCF Service for intranet endpoint and Azure Service Bus Relay endpoint

$
0
0

Hello:

I have a VS 2013 on premise WCF Service that I will be hosting in IIS 8.0.  How do I configure the Azure service bus relay endpoint in my web.config along with the intranet endpoint?  When I run the WCF service locally from Visual Studio I get this error message in wcftestclient: Could not find a base address that matches scheme net.tcp for the endpoint
with binding MetadataExchangeTcpBinding. Registered base address schemes are. 
If I host this service in a console application then my Azure web app (MVC template) successfully communicates with the WCF service.  But when I run the service as the startup project this problem occurs.  Intranet application runs fine as well.  Here's the XML file (changed all the "//" to "** so it could be submitted"

<?xml version="1.0"?>
<configuration>

  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.5"/>
    <httpRuntime targetFramework="4.5"/>
  </system.web>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="mexBehavior">
          <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="sbTokenProvider">
          <transportClientEndpointBehavior>
            <tokenProvider>
              <sharedAccessSignature keyName="RootManageSharedAccessKey" key="4sg6JNvzKLYOjZli7kucM/ylMegG7+mCL58KMbpWClE=" />
            </tokenProvider>
          </transportClientEndpointBehavior>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <protocolMapping>
        <add binding="basicHttpsBinding" scheme="https"/>
    </protocolMapping>   
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
    <services>
      <service name="Philidor.ShipperService.ShipperService" behaviorConfiguration="mexBehavior" >
        <endpoint address="ShipperService" binding="basicHttpBinding" name="OnPremiseEndpoint" contract="Philidor.ShipperService.IShipperService" />
        <endpoint address="mex" binding="basicHttpBinding" name="MexEndpoint" contract="IMetadataExchange" />
        <endpoint address="mex" binding="mexTcpBinding" name="MexTcpEndpoint" contract="IMetadataExchange" />
        <endpoint address="sb:**azuretrialshipperservice.servicebus.windows.net/ShipperService/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=4sg6JNvzKLYOjZli7kucM/ylMegG7+mCL58KMbpWClE="
          binding="netTcpRelayBinding" name="RelayEndpoint" contract="Philidor.ShipperService.IShipperService" />
        <host>
          <baseAddresses>
            <add baseAddress="http:**localhost:62123/" />
            <add baseAddress="net.tcp:**localhost:62124/IShipperService/ShipperService"/>
          </baseAddresses>
        </host>
      </service>
    </services>
      <extensions>
      <!-- In this extension section we are introducing all known service bus extensions. User can remove the ones they don't need. -->
      <behaviorExtensions>
        <add name="connectionStatusBehavior"
          type="Microsoft.ServiceBus.Configuration.ConnectionStatusElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="transportClientEndpointBehavior"
          type="Microsoft.ServiceBus.Configuration.TransportClientEndpointBehaviorElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="serviceRegistrySettings"
          type="Microsoft.ServiceBus.Configuration.ServiceRegistrySettingsElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      </behaviorExtensions>
      <bindingElementExtensions>
        <add name="netMessagingTransport"
          type="Microsoft.ServiceBus.Messaging.Configuration.NetMessagingTransportExtensionElement, Microsoft.ServiceBus,  Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="tcpRelayTransport"
          type="Microsoft.ServiceBus.Configuration.TcpRelayTransportElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="httpRelayTransport"
          type="Microsoft.ServiceBus.Configuration.HttpRelayTransportElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="httpsRelayTransport"
          type="Microsoft.ServiceBus.Configuration.HttpsRelayTransportElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="onewayRelayTransport"
          type="Microsoft.ServiceBus.Configuration.RelayedOnewayTransportElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      </bindingElementExtensions>
      <bindingExtensions>
        <add name="basicHttpRelayBinding"
          type="Microsoft.ServiceBus.Configuration.BasicHttpRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="webHttpRelayBinding"
          type="Microsoft.ServiceBus.Configuration.WebHttpRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="ws2007HttpRelayBinding"
          type="Microsoft.ServiceBus.Configuration.WS2007HttpRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="netTcpRelayBinding"
          type="Microsoft.ServiceBus.Configuration.NetTcpRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="netOnewayRelayBinding"
          type="Microsoft.ServiceBus.Configuration.NetOnewayRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="netEventRelayBinding"
          type="Microsoft.ServiceBus.Configuration.NetEventRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="netMessagingBinding"
          type="Microsoft.ServiceBus.Messaging.Configuration.NetMessagingBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      </bindingExtensions>
    </extensions>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <!--
        To browse web app root directory during debugging, set the value below to true.
        Set to false before deployment to avoid disclosing web app folder information.
      -->
    <directoryBrowse enabled="true"/>
  </system.webServer>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.ServiceBus" culture="neutral" publicKeyToken="31bf3856ad364e35" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

</configuration>

Thank you in advance for your help!!!

AMQP Interoperability with Service Bus is dependent on TransportType - .NET Client vs. Proton-C

$
0
0

I have found a really strange behavior in the Service Bus interoperability implementation.

I am sending data from a .net client  (WindowsAzure.ServiceBus 2.7.3) to Proton-C Clients on various platforms (Win32, Linux, ...)

For the sake of simplicity I decided to use AMQP map format.

According to the table under the following MSDN article the .NET DataType IDictionary is mapped to AMQP map. 

https://msdn.microsoft.com/en-us/library/azure/jj841075.aspx

Sender:

 var brokeredMessages =
                    pointEvents.Select(pointEvent => new BrokeredMessage((IDictionary) pointEvent.AsDictionary())
                    {
                        MessageId = pointEvent.Id.ToString()
                    });

This is correctly mapped to AMQP MAP and can be deserialized on the Proton-C side with

Receiver:

const char * format = pn_message_get_content_type(message);
				pn_data_t *body = pn_message_body(message);
				pn_data_next(body);
				pn_type_t type =  pn_data_type(body);
				size_t mapsize = pn_data_get_map(body);

the message type in the body is PN_MAP(25) as long as .NET client uses TransportType=Amqp in connection string.

If the .NET client however switches the TransportType to NetMessaging (as I wanted to do because of some firewall issues)  the message body is serialized as PN_BINARY(19) instead.

The .NET library implies that AMQP is just a transport type, but it has actually a significant impact on the semantic of the communication.

I guess one might argue that you have to use AMQP Transport to have AMQP serialization, but I think this is at least an API design problem if not a straight forward bug....





Azure Event Hub - Publisher revoke not working

$
0
0

When using a non .NET message sender (e.g. postman - chrome extension) to send messages via a revoked publisher, the following error is returned, but the message still gets into the event hub.

<Error>

    <Code>403</Code>
    <Detail>Publisher: XXXXXXXXXX, was revoked access to Send messages to EventHub. TrackingId:a24bcd0000006fdb0001bd5555cdc883_G21_B35, Reference:b90356e9-7e2e-436e-9f4b-e85c65b91c19, Timestamp:8/14/2015 10:52:52 AM</Detail>
</Error>


Please advice.

OnMessage & AutoComplete=true & PeekLock. Message redelivery logic

$
0
0

Hello All,

I have a scenario where I have a number of worker roles which each run assorted jobs.

Inside each worker role, I have service bus client(s) set up with an OnMessage delegate with AutoComplete=true and using  PeekLock.

The docs say auto complete means that when the delegate returns, the message will then be completed.

My question is, do I need to worry about renewing the lock? what if my 'job' (and therefore delegate) takes longer than the maximum lock (as I understand it) of 5 minutes?

I have read in loads of places that the message pump system (Onmessage) has lots of logic inside it to make things easier - does it renew locks as they are required?

I am getting messages with a delivery count of >1 and am currently ignoring them, but in order to recover from a crash process, I need to actually run these jobs again.  Can I rely on OnMessage to do this for me? Or will the message be available on the queue again even though the delegate is still running?

I hope this question makes sense, and thank you for any help in advance.

Regards,

Matt Dendle


Lock duration on queues with session enabled.

$
0
0

Hi guys,

I'm trying to work on the following scenario:

1) API retrieve next available session, and consume first message of that session. This is a trigger on a logic app.

2) Logic App would process the message and if successful, complete the message at the end.

My code looks like this:

Retrieve API (just the queue handling for brevity):

var queueClient = QueueClient.Create(queuename, ReceiveMode.PeekLock);

if (queueClient.GetMessageSessions().Count() > 0)
{

	var nextSession = queueClient.AcceptMessageSession();
	var sessionId = nextSession.SessionId;
	BrokeredMessage message = null;
	message = nextSession.Receive(TimeSpan.FromSeconds(5));
	if (message != null)
	{
		result = new ServiceBusBasicMessage(message);

	}
	nextSession.Close();

	// do stuff here.

}
queueClient.Close();

ServiceBusBasicMessage have some of the properties of a brokeredmessage that I might need to use later.

So when I'm trying to complete the message I'm doing this:

var queueClient = QueueClient.Create(queuename);
var session = queueClient.AcceptMessageSession(message.SessionId);
session.Complete(message.LockToken);
session.Close();
queueClient.Close();

Everytime I run this I got the following error:

The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue.

I have the lock duration set at 5 minutes (so I could rule this out). But when I look at the message.LockedUntilUTC it seems like the value is more or less 30 seconds in the future. The session.LockedUntilUTC is set to five minutes in the future. I've tried to RenewLock on the message but it doesn't help.

Is there anything I'm missing at my code? If not, is there any way for the message to share the session lock tim? Or the kind of scenario I'm looking at is not possible?

Thanks in advance, Wagner.

Custom Service Bus domain url

$
0
0

Hi,

Is it possible to use a custom domain on a Service Bus?

Thanks


GilesB


Service Bus REST API with custom domain name?

$
0
0

Hi all, 

I am a newer for Azure, I have some requirements for change the Service Bus REST API default domain name to  my own. 

Is there any way to change the default domain name of Service Bus REST API ?

Thanks

Frequent timeout exceptions from ServiceBus queues

$
0
0

I've got a .NET application which uses ServiceBus queues and it is experiencing frequent timeout exceptions from ServiceBus-related classes. The app works fine on few developer machines but I'm seeing these exceptions on the server where this is supposed to run. The exceptions are:

A timeout has occurred during the operation. 2b122421-8715-403d-97fc-3d1261581dbd_G24
System.ServiceModel.FaultException`1 was unhandled by user code
  HResult=-2146233087
  Message=A timeout has occurred during the operation. 2b122421-8715-403d-97fc-3d1261581dbd_G24
  Source=Microsoft.ServiceBus
  Action=http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher/fault
  StackTrace:
    Server stack trace: 
       at Microsoft.ServiceBus.Messaging.Sbmp.DuplexRequestBindingElement.DuplexRequestSessionChannel.ThrowIfFaultMessage(Message wcfMessage)
       at Microsoft.ServiceBus.Messaging.Sbmp.DuplexRequestBindingElement.DuplexRequestSessionChannel.HandleMessageReceived(IAsyncResult result)
    Exception rethrown at [0]: 
       at Microsoft.ServiceBus.Common.ExceptionDispatcher.Throw(Exception exception)
       at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
       at Microsoft.ServiceBus.Messaging.Sbmp.DuplexRequestBindingElement.DuplexRequestSessionChannel.DuplexCorrelationAsyncResult.End(IAsyncResult result)
       at Microsoft.ServiceBus.Messaging.Sbmp.DuplexRequestBindingElement.DuplexRequestSessionChannel.EndRequest(IAsyncResult result)
       at Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.RequestAsyncResult.<GetAsyncSteps>b__4(RequestAsyncResult thisPtr, IAsyncResult r)
       at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result)
  InnerException: 

Now, because this works on some machines I suspect that the problem is not likely in code or the ServiceBus itself but in the connectivity somehow. Yet the internet connection on the server should be fine.

I tried to force the ConnectivityMode to both Http and Tcp but that didn't help - I think it is using net.tcp when on AutoDetect.

I managed to turn on WCF activity and message logging to get some traces on this. That does produce some log but I haven't found any errors in those logs. Is there some other logs I could look into to get some insight on this?


Example of Windows Server Service bus 1.1 using REST API

$
0
0

Hi 

I following tutorial of service bus brokered messaging using REST API https://msdn.microsoft.com/en-us/library/azure/hh416754.aspx

I get an exception 

Could not connect to net.tcp://<Machinename>.local:9350/. The connection attempt lasted for a time span of 00:00:02.1312727. TCP error code 10061: No connection could be made because the target machine actively refused it xx.xx.xx.xx:9350.

I am using Windows Server Service Bus 1.1 [NOT AZURE service bus] and below is the configuration file and code

App.config:

<configuration><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup><system.net><defaultProxy useDefaultCredentials="true"><proxy bypassonlocal="True" usesystemdefault="True"/></defaultProxy></system.net><system.serviceModel><bindings><!-- Application Binding --><webHttpRelayBinding><binding name="default"><security relayClientAuthenticationType="None" /></binding></webHttpRelayBinding></bindings><extensions><!-- In this extension section we are introducing all known service bus extensions. User can remove the ones they don't need. --><behaviorExtensions><add name="connectionStatusBehavior" type="Microsoft.ServiceBus.Configuration.ConnectionStatusElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /><add name="transportClientEndpointBehavior" type="Microsoft.ServiceBus.Configuration.TransportClientEndpointBehaviorElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /><add name="serviceRegistrySettings" type="Microsoft.ServiceBus.Configuration.ServiceRegistrySettingsElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /></behaviorExtensions><bindingElementExtensions><add name="netMessagingTransport" type="Microsoft.ServiceBus.Messaging.Configuration.NetMessagingTransportExtensionElement, Microsoft.ServiceBus,  Culture=neutral, PublicKeyToken=31bf3856ad364e35" /><add name="tcpRelayTransport" type="Microsoft.ServiceBus.Configuration.TcpRelayTransportElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /><add name="httpRelayTransport" type="Microsoft.ServiceBus.Configuration.HttpRelayTransportElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /><add name="httpsRelayTransport" type="Microsoft.ServiceBus.Configuration.HttpsRelayTransportElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /><add name="onewayRelayTransport" type="Microsoft.ServiceBus.Configuration.RelayedOnewayTransportElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /></bindingElementExtensions><bindingExtensions><add name="basicHttpRelayBinding" type="Microsoft.ServiceBus.Configuration.BasicHttpRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /><add name="webHttpRelayBinding" type="Microsoft.ServiceBus.Configuration.WebHttpRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /><add name="ws2007HttpRelayBinding" type="Microsoft.ServiceBus.Configuration.WS2007HttpRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /><add name="netTcpRelayBinding" type="Microsoft.ServiceBus.Configuration.NetTcpRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /><add name="netOnewayRelayBinding" type="Microsoft.ServiceBus.Configuration.NetOnewayRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /><add name="netEventRelayBinding" type="Microsoft.ServiceBus.Configuration.NetEventRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /><add name="netMessagingBinding" type="Microsoft.ServiceBus.Messaging.Configuration.NetMessagingBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /></bindingExtensions></extensions><services><!-- Application Service --><service name="Micosoft.ServiceBus.Samples.ImageService"
               behaviorConfiguration="default"><endpoint name="RelayEndpoint"
                  contract="Micosoft.ServiceBus.Samples.IImageContract"
                  binding="webHttpRelayBinding"
                  bindingConfiguration="default"
                  behaviorConfiguration="sbTokenProvider"
                  address="sb://machinename.local/sbDefaultNamespace" /></service></services><behaviors><endpointBehaviors><behavior name="sbTokenProvider"><transportClientEndpointBehavior><tokenProvider><sharedAccessSignature keyName="RootManageSharedAccessKey" key="12345678090123456780901234567809012345678090" /></tokenProvider></transportClientEndpointBehavior></behavior></endpointBehaviors><serviceBehaviors><behavior name="default"><serviceDebug httpHelpPageEnabled="false" httpsHelpPageEnabled="false" /></behavior></serviceBehaviors></behaviors></system.serviceModel><appSettings><!-- Service Bus specific app setings for messaging connections --><add key="Microsoft.ServiceBus.ConnectionString" value="Endpoint=sb://[your namespace].servicebus.windows.net;SharedSecretIssuer=owner;SharedSecretValue=[your secret]" /></appSettings></configuration>

code:

using Microsoft.ServiceBus;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Web;
using System.Text;
using System.Threading.Tasks;



namespace Micosoft.ServiceBus.Samples
{
    [ServiceContract(Name = "ImageContract", Namespace = "http://samples.microsoft.com/ServiceModel/Relay/RESTTutorial1")]
    public interface IImageContract
    {
        [OperationContract, WebGet]
        Stream GetImage();
    }

    [ServiceBehavior(Name = "ImageService", Namespace = "http://samples.microsoft.com/ServiceModel/Relay/")]
    public class ImageService : IImageContract
    {
        const string imageFileName = "image.jpg";

        Image bitmap;

        public ImageService()
        {
            this.bitmap = Image.FromFile(imageFileName);
        }

        public Stream GetImage()
        {
            MemoryStream stream = new MemoryStream();
            this.bitmap.Save(stream, ImageFormat.Jpeg);

            stream.Position = 0;
            WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";

            return stream;
        }
    }


    public interface IImageChannel : IImageContract, IClientChannel { }

    class Program
    {
        static void Main(string[] args)
        {
            string serviceNamespace = "sbDefaultNamespace";
            Uri address = ServiceBusEnvironment.CreateServiceUri("https", serviceNamespace, "Image");

            WebServiceHost host = new WebServiceHost(typeof(ImageService), address);
            host.Open();
            Console.WriteLine("Copy the following address into a browser to see the image: ");
            Console.WriteLine(address + "GetImage");
            Console.WriteLine();
            Console.WriteLine("Press [Enter] to exit");
            Console.ReadLine();
            host.Close();
        }
    }
}


Radhakrishna

Can't uninstall service bus

$
0
0

Hi,

When trying to uninstall Service Bus i get this error:

"This computer is part of a farm. To uninstall, first leave the farm either using 'Leave from Farm' option in Service Bus Configuration tool or Remove-SBHost cmd-let in PowerShell."

When trying the Remove-SBHost powershell command I get this error:

"Remove-SBHost : Certificate requested with thumbprint EC808B911009F8A8E21FE73DE5216E6B596527F4 not found in the certificate store LocalMachine\My."

When trying to open the configuration tool it just craches with this information in the eventlog:

Application: Microsoft.ServiceBus.ConfigWizard.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Windows.Markup.XamlParseException

How can I uninstall the Service Bus?


TR

Service Bus vNext roadmap?

$
0
0
It has been over a year since Service Bus 1.1 was released for Windows.  Is there a timeframe we can expect to see an update for this? Really looking forward to bringing some of the Azure-only features to Windows. ahem, relays.

OnMessageAsync/CompleteAsync bug

$
0
0

I have a queueClient that is configured to:

  • Have 200 concurrentCalls
  • Have a prefetch count of 100

I have a sendClient that places 10000 messages onto the queue with:

  • A max TTL for the messages (5 mins)
  • A max lease (5 mins)

Given a Func that stores the 'CompleteAsync' task and then returns this, I would expect that the function would be invoked *exactly* 10000 times, and all messages are completed.

Instead, I observe the following behavior:

  • At minimum 10000 messages are received, though often ~100 more
  • The additional messages are of the 10000 that were sent, this indicates the additional ones are "retries".
  • The additional messages have a delivery count of 2, indicating they were indeed retried.

It would appear that Completing the message is not being fully honored. Indeed, when using the ExceptionReceived event handler on the queue client. A number of exceptions are being thrown with the message, "The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue". Given the length TTL and lease times, the lock cannot possibly have expired in the 20 seconds of runtime.

My working theory is that the concurrent calls and prefetched buffer is not being handled correctly, but I am at a loss of what to do now. I'm convinced given the simplicity of this bug that is an azure queue client specific issue.

AcceptMessageSession server timeout cannot be set to 0

$
0
0

Hello,

I'm calling QueueClient.AcceptMessageSessionAsync in .NET Service Bus SDK 3.0.3 and I need this method to return immediately if there're no session on the server available.

But there is a timeout argument validation inside SDK implementation that doesn't allow to use TimeSpan.Zero as server timeout.

We use TimeSpan.Zero for when calling ReceiveBatchAsync method and it works just fine.

What's the reason for this argument check inside AcceptMessageSession?

Current workaround is to use TimeSpan.FromTicks(1) as server timeout. Does it affect performance in any way?



Azure Service Bus Share Access Key expiration

$
0
0
The Azure Portal for a Service Bus namespace allows you to create Shared Access Policies for which Share Access (SAS) keys are generated. What is the expiration time/date for thes keys? Is there a way to look at a SAS key to determine this? Thanks

Service Bus Queue AutoForward To Event Hub

$
0
0

Hi,

Is Service Bus Queue AutoForward to Event Hub supported?

Thanks.
Guy

Service Bus Queues - message size limit ?

$
0
0

Hi there, 

Is there a messages size limit on Service Bus Queues please ?


God bless you all :)

How do I deal with messages bigger than 256KB please ?

$
0
0

Hi there, 

Service Bus message queues look like a perfect solution for my problem

but, they have this messages size limit of 256KB. 

The problem is that I will receive messages that  may be as big as 10MB. 

I would really like to use message queuing, because of the low price but, the message limit is a big obstacle. 

Are there any ways around this ?


God bless you all :)

Service Bus Queues - guaranted delivery

$
0
0

Hi there,

Are message queues transactional ? How can I be sure that the message arrives.

In a system that I build, we need to have a quarante that message arrives safely from A to B.

Is there anything like ACID compliance involved in Service Bus queues ?


God bless you all :)

Viewing all 1916 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>