title: NServiceBus 5 using AzureStoragePersistence results in "Failed to fetch timeouts from the timeout storage" on machines other then development machine
body: <p>I try to use Azure Table Storage for the persistence of timeout data and I experience an error on environments other than my local development machine.</p>
  
  <p>My local machine is creating the timeout tables on Azure and is able to poll timeout data successfully. But, if I host the same software on premise on another server it failed to fetch the timeouts. I receive the following error:</p>
  
  <pre><code>    2015-02-12 09:43:50,638 [10] WARN  NServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver - Failed to fetch timeouts from the timeout storage
  System.NullReferenceException: Object reference not set to an instance of an object.
     at NServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver.Poll(Object obj) in c:\BuildAgent\work\1b05a2fea6e4cd32\src\NServiceBus.Core\Timeout\Hosting\Windows\TimeoutPersisterReceiver.cs:line 88
     at System.Threading.Tasks.Task.Execute()
  </code></pre>
  
  <p>It seems that the TimeoutPersister is null at the point it wants to fetch data from it. </p>
  
  <p>I host NServiceBus using the NServiceBus.Host. My endpoint configuration looks like this:</p>
  
  <pre><code>public class EndpointConfig : IConfigureThisEndpoint, AsA_Server
      {
          public void Customize(BusConfiguration configuration)
          {
              configuration.UsePersistence&lt;AzureStoragePersistence&gt;();
              configuration.EndpointName("MyEndpoint");
              configuration.UseTransport&lt;RabbitMQTransport&gt;()
                  .DisableCallbackReceiver();
              configuration.DisableFeature&lt;Sagas&gt;();
              configuration.ScaleOut().UseSingleBrokerQueue();();
          }
      }
  </code></pre>
  
  <p>And my app.config contains:</p>
  
  <pre><code>&lt;connectionStrings&gt;
      &lt;add name="NServiceBus/Transport" connectionString="host=myrabbitmqserver;virtualhost=myhost;username=me;password=secret" /&gt;
    &lt;/connectionStrings&gt;
    &lt;AzureTimeoutPersisterConfig ConnectionString="DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=myaccouuntkey;" TimeoutManagerDataTableName="TimeoutManager" TimeoutDataTableName="TimeoutData" /&gt;
  </code></pre>
  
  <p>Does anyone have any idea what I am doing wrong or can anyone point me in the right direction investigating what the problem can be?</p>
  
  <p><strong>Update 1</strong>
  It seems that the NServiceBus.Azure assembly is not loaded on the other machines. So azure persistence features are not initialized resulting in NullReferenceException when using the TimeoutPersister.</p>
  
  <p><strong>Update 2</strong> After some NServiceBus debugging I noticed that an exception was thrown when extracting the types from the NServiceBus.Azure.dll assembly. It is unable to load the referenced assembly Miscrosoft.Data.Services.Client.dll 5.6.0.0. This assembly is indeed not in the bin folder. The present version is 5.6.3.0. The NServiceBus.Azure NuGet package supports versions >= 5.6.0.0 &lt; 6.0.0.0, but somehow it's still expecting version 5.6.0.0. It still feels weird that it is working on my development machine? Maybe there are some old versions of the Microsoft.Data.Services.Client.dll installed on my machine as part of the Azure SDK, which are found during the assembly loading.</p>
  
  <p><strong>Update 3</strong>
  I indeed had somewhere at my system the older 5.6.0 version available. Downgrading the Microsoft.Data.xxx packages to version 5.6.0 solved the issue for now. Does anyone have the same issues using 5.6.3 versions and found a solution for that?</p>
  
  <p><strong>Update 4</strong>
  Since 2015-02-13 a new version of NServiceBus.Azure is released and now it requires Microsoft.Data.Services.Client version 5.6.2.0. I am still not able to use the 5.6.3 version. Adding a assembly binding redirect will not help either.</p>