earthtools.org обеспечивает бесплатный веб-сервис для получения часового пояса от города здесь:
http://www.earthtools.org/webservices.htm#timezone
Вы просто передаете в значениях long/lat как это: (Это для Нью-Йорка)
http://www.earthtools.org/timezone-1.1/40.71417/-74.00639
РЕДАКТИРОВАНИЕ:
кажется, что earthtools был закрыт. Хорошая альтернатива (Который не существовал в 2008, когда на этот вопрос ответили) является Google Time Zone API. Для использования его, Вы должны сначала активировать часовой пояс API на своей учетной записи. Это свободно, если Вы остаетесь ниже этих пределов:
документация доступна на Google Developers.
Ой! Задайте вопрос, над которым вы долго ломали голову, и сделайте перерыв. Тогда, конечно, ответ приходит вам на ум, и это совершенно очевидно! Я забыл настроить MsmqTransport, мой рабочий код ниже для всех, кто заинтересован.
Configure config = Configure.With();
config
.CastleWindsorBuilder()
.XmlSerializer()
.MsmqSubscriptionStorage()
.MsmqTransport()
.IsTransactional(true)
.PurgeOnStartup(false)
.UnicastBus()
.ImpersonateSender(false);
config
.MsmqSubscriptionStorage()
.Configurer
.ConfigureComponent(NServiceBus.ObjectBuilder.ComponentCallModelEnum.None)
.ConfigureProperty(x => x.InputQueue, "testapps_messagebus")
.ConfigureProperty(x => x.NumberOfWorkerThreads, 1)
.ConfigureProperty(x => x.ErrorQueue, "testapps_errors")
.ConfigureProperty(x => x.MaxRetries, 5);
IBus bus = config
.CreateBus()
.Start();
bus.Publish(new Message(DateTime.Now));