2016-03-27 7 views
1

私はc#とasp.net mvc(visual studio 2015)を使用します。mongodbをcに接続する#

MongoDB.Driver.MongoConfigurationException: The connection string 'mongodb:://localhost' is not valid. 

と誤差源は次のとおりです:私は、C#にはMongoDBを接続しようとすると、このエラーが表示されます

var client = new MongoClient(Settings.Default.bigdataconexionstrin); 

が、これは私のコードです:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web.Mvc; 
using WebApplication5.Properties; 
using MongoDB.Driver; 
using MongoDB.Driver.Linq; 

namespace WebApplication5.Controllers 
{ 
    [Authorize] 
    public class HomeController : Controller 
    { 
     public IMongoDatabase db1; 
     public HomeController() 
     { 
      var client = new MongoClient(Settings.Default.bigdataconexionstrin); 
      MongoClientSettings settings = new MongoClientSettings(); 
      settings.Server = new MongoServerAddress("localhost", 27017); 
      this.db1 = client.GetDatabase(Settings.Default.db); 
     } 

     public ActionResult Index() 
     { 
      return View(); 
     } 
    } 
} 

答えて

7

としてあたりthe manual、有効な接続文字列(1つのホストを持つ)の形式は次のとおりです。

mongodb://[username:[email protected]]host[:port][/[database][?options]] 

エラーメッセージから判断すると、mongodb:://localhostを使用しています。コロンを繰り返すと、これが無効になることに注意してください。そのため、構成内の接続文字列を修正する必要があります。

つまり、MongoClientの初期設定の直後に、alternative wayであるMongoClientSettingsを設定して、MongoClientの接続設定を指定します。しかし、これらの設定を使用してクライアントを作成することはありません。それらを使用する場合は、コードは次のようになります。

MongoClientSettings settings = new MongoClientSettings(); 
settings.Server = new MongoServerAddress("localhost", 27017); 
var client = new MongoClient(settings); 

ただし、設定から接続文字列を使用しないでください。したがって、使用する接続設定を指定する2つの方法のどちらを決定するべきです。

+0

非常に良いです。私もmongodbに接続するために接続文字列の使用をやめました。 –