2013-11-19 2 views
1

Я реализовал AppHost, где я хочу подключиться к Redis, но мне нужно прочитать адрес сервера из файла конфигурации. Как я могу сделать это внутри AppHost?Прочитайте конфигурационный файл из AppHost с ServiceStack

Я развертываю на IIS.

public class AppHost : AppHostBase 
    { 
    public override void Configure(Container container) 
    { 
     container.Register<IRedisClientsManager>(new PooledRedisClientManager("localhost:6379")); 
      container.Register(c => c.Resolve<IRedisClientsManager>().GetCacheClient()); 
    } 
    } 

Как я могу использовать ту же конфигурацию в реализации служб?

ответ

0

В ServiceStack вы обычно используют AppSettings для чтения из <appSettings/> в файле Web.config, например:

var appSettings = new AppSettings(); 

container.Register<IRedisClientsManager>(c => 
    new PooledRedisClientManager(appSettings.GetString("redis-host"))); 

Существует также ConfigUtils класс, если вы хотите прочитать другие части приложения конфигурационный файл, как Строки подключения.

+0

Вы знаете, как читать виртуальные пути, такие как Sharepoint «_layouts»? Что-то подобное с HttpServerUtility.MapPath –

+1

Не уверен насчет Sharepoint, но вы можете попробовать 'VirtualPathUtility.ToAbsolute()' и 'HostingEnvironment.ApplicationVirtualPath', чтобы получить информацию о вашей размещенной среде. – mythz

Смежные вопросы