簡體   English   中英

如何在Servicestack中配置mongodb

[英]How to configure mongodb in servicestack

我試圖將MongoDB用作ServiceStack的Authentication模塊的持久性后端,因此我在web.config添加了以下節點:

<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檢索連接字符串和數據庫名稱?

建議的訪問您的App或Web.Config appSettings的方法是:

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

也就是說,如果您將所有配置設置都保留在<appSettings/>標記中。

要訪問保存在<connectionStrings>中的連接字符串,可以使用ConfigUtils,例如:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM