2013-09-26 4 views
1

Я пытаюсь использовать MongoDB как настойчивость фоновым для модуля аутентификации ServiceStack, поэтому я добавил следующий узел в web.config:Как настроить MongoDB в servicestack

<connectionStrings> 
    <add name="myDb" connectionString="mongodb://localhost/mydb?safe=true" /> 
</connectionStrings> 

А вот ниже мой Configure метод:

public class MyAppHost : AppHostBase 
{ 
    public MyAppHost() : base("My Web Services", typeof(MyService).Assembly) 
    { 
    } 

    public override void Configure(Container container) 
    { 
     Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { 
      new BasicAuthProvider() 
     })); 
     Plugins.Add(new RegistrationFeature()); 

     var connectionString = ... // how do I retrieve "mongodb://localhost"? 
     var dbName = ...   // how do I retrieve "mydb"? 
     var mongoClient = new MongoClient(connectionString); 
     var server = mongoClient.GetServer(); 
     var db = server.GetDatabase(dbName); 

     container.Register<ICacheClient>(new MemoryCacheClient()); 
     container.Register<IUserAuthRepository>(new MongoDBAuthRepository(db, true)); 
    } 
} 

Как получить строку подключения и имя базы данных из web.config?

ответ

1

Рекомендуемый способ получить доступ к App или Web.Config AppSettings является:

var appSettings = new AppSettings(); 
var connStr = appSettings.GetString("myDbConnectionString"); 

Это если вы храните все ваши настройки конфигурации в <appSettings/> тега.

Чтобы получить доступ к строке соединения хранится в <connectionStrings>, вы могли бы использовать ConfigUtils, например:

var connStr = ConfigUtils.GetConnectionString("MyDb"); 
Смежные вопросы