-
Type: Bug
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: 1.1
-
Component/s: None
-
Environment:Running on Azure connecting to a local VM running 3 mongod.exe as replica sets
This mongo url fails with the 1.1 c# driver and works with the 1.0 driver
mongodb://xxxx:40000,xxxx:40001,xxxx:40002/?ipv6=true;replicaSet=xq;safe=true
System.Net.Sockets.SocketException: No connection could be made
because the target machine actively refused it [::1]:40000
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,
SocketAddress socketAddress)
at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
at System.Net.Sockets.TcpClient.Connect(IPEndPoint remoteEP)
at MongoDB.Driver.Internal.MongoConnection.Open() in
C:\work\10gen\mongodb\mongo-csharp-driver\Driver\Internal\MongoConnection.cs:line
266
at MongoDB.Driver.Internal.MongoConnection.GetNetworkStream() in
C:\work\10gen\mongodb\mongo-csharp-driver\Driver\Internal\MongoConnection.cs:line
409
at MongoDB.Driver.Internal.MongoConnection.SendMessage(MongoRequestMessage
message, SafeMode safeMode) in
C:\work\10gen\mongodb\mongo-csharp-driver\Driver\Internal\MongoConnection.cs:line
403
at MongoDB.Driver.Internal.MongoConnection.RunCommand(String
collectionName, QueryFlags queryFlags, CommandDocument command) in
C:\work\10gen\mongodb\mongo-csharp-driver\Driver\Internal\MongoConnection.cs:line
296
at MongoDB.Driver.MongoServerInstance.Connect(Boolean slaveOk) in
C:\work\10gen\mongodb\mongo-csharp-driver\Driver\Core\MongoServerInstance.cs:line
254
at MongoDB.Driver.Internal.ReplicaSetConnector.ConnectWorkItem(Object
argsObject) in C:\work\10gen\mongodb\mongo-csharp-driver\Driver\Internal\ReplicaSetConnector.cs:line
100
— End of inner exception stack trace —
at MongoDB.Driver.Internal.ReplicaSetConnector.Connect(TimeSpan
timeout) in C:\work\10gen\mongodb\mongo-csharp-driver\Driver\Internal\ReplicaSetConnector.cs:line
87
at MongoDB.Driver.MongoServer.Connect(TimeSpan timeout) in
C:\work\10gen\mongodb\mongo-csharp-driver\Driver\Core\MongoServer.cs:line
435
at MongoDB.Driver.MongoServer.Connect() in
C:\work\10gen\mongodb\mongo-csharp-driver\Driver\Core\MongoServer.cs:line
415
at IQ.IR.Data.Configuration.GetMongoDB(String connection) in
C:\Dev\XQ.Service\IQ.IR.Data\Configuration.cs:line 52
This is the code...
static MongoDatabase GetMongoDB(string connection)
{
const string testBox = "xxxx";
var addr1 = new MongoServerAddress(testBox, 40000);
var addr2 = new MongoServerAddress(testBox, 40001);
var addr3 = new MongoServerAddress(testBox, 40002);
MongoUrlBuilder url = new MongoUrlBuilder
{
IPv6 = true,
SafeMode = SafeMode.True,
Servers = new List<MongoServerAddress>
,
ConnectionMode = ConnectionMode.ReplicaSet,
ReplicaSetName = "xq"
};
try
{ var mongo = MongoServer.Create(url.ToMongoUrl()); mongo.Connect(); return mongo.GetDatabase("xq"); } catch (Exception ex)
{
throw new Exception(string.Format("<<
>>
{1}",
url.ToMongoUrl(), ex));
}
}
I put a test in to see if the Host value resolves to an IP and it does (IPv6).