Thanks Dru, that's good to know.
As far as steps to reproduce, I am doing the following. I have the
MassTransit subscription service for the current release (2.0.0.5) up
and running. I can run publishers/subscribers from the previous
release (2.0.0.2) running against it and working just fine. I cannot
get a publisher running the current release to work with the
subscription service of the current release.
The entire code of my publisher is as follows:
class Program
{
public static void Main()
{
IServiceBus bus = null;
try
{
bus = ServiceBusFactory.New(sbc =>
{
sbc.UseMsmq();
sbc.VerifyMsmqConfiguration();
sbc.UseSubscriptionService("msmq://localhost/mt_subscriptions");
sbc.ReceiveFrom("msmq://localhost/test_pub");
});
Console.WriteLine("Type a message to send: ");
string input = Console.ReadLine();
bus.Publish(new TestMessage() { Text = input });
}
finally
{
if(bus != null)
bus.Dispose();
}
}
}
This will always timeout on the ServiceBusFactory.New line with the
exception "Timeout waiting for subscription service to respond". If I
look in the test_pub queue, I can see the SubscriptionRefresh message
sitting there waiting to be consumed. If I remove the references to
the current release and replace them with the references to the
previous release, it works correctly.
From looking in the MassTransit code, I can guess the following:
The exception is coming from the SubscriptionClient class in the
constructor. It's waiting for that SubscriptionRefresh message, but
it's not getting it.
This constructor is being called when the Build() method on the
ServiceBusBuilderImpl class calls RunBusServiceConfigurators(). This
is right before the bus.Start() call.
Until the bus is started, no messages on that queue get read. So the
SubscriptionClient can't get that SubscriptionRefresh message.
This appears to be the problem from what I can gather from the code,
but I'm not sure how it needs to be corrected. I'm sorry I can't be
of more help. Of course, if there's a configuration change I need to
make from the previous version to the current one, that would explain
it.
Thanks,
Brian