2013-09-26 27 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

推薦的方式來訪問你的應用程序或Web.Config中的appSettings是:

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

如果你保持在<appSettings/>標記您的所有配置那是。

要訪問保存在<connectionStrings>一個連接字符串,您可以使用ConfigUtils,e.g:

var connStr = ConfigUtils.GetConnectionString("MyDb");