当部署在linux服务器上时,mongodb客户端连接在.net核心中需要15分钟,但当部署在windows服务器上时同



当c#mongo-db客户端访问文档时,我在windows上部署的.NET CORE中的代码运行良好。然而,当在linux机器上部署相同的代码时,获取文档需要15分钟,而且这种情况会间歇性发生。我还将MongoDb驱动程序更新到2.10.4,但它对我不起作用。

// Code trying to fetch Document from web api , calling library method to fetch document 
MongoDbService _mongoDbClient = new MongoDbService(_configuration["MongoDBConnection"]);
Conversation storedmodel = new Conversation ();
for (int i = 0; i < 10; i++)
{
try
{
storedmodel = _mongoDbClient.GetDocumentFromConversationId(ConversationId);
break;
}
catch (Exception ex)
{
if (i == 9)
{
//Logging exception
LumenTelemetry.TrackEvent(conversationID, " Error - " + ex.Message + " " + ex.InnerException + " " + ex.StackTrace);
}
}
}
//////////////////////// Code in Library Project
public interface IMongoService
{
IMongoDatabase GetDatabase(string dbName);
Conversation GetDocumentFromConversationId(string conversationId);
}

public class MongoDbService : IMongoService
{
private readonly MongoClient _mongoClient;
public MongoDbService(string conStr)
{
var connection = new MongoDbConnection(conStr);
_mongoClient = connection.MongoConnection;
}

public Conversation GetDocumentFromConversationId(string conversationId)
{
IMongoDatabase db = _mongoClient.GetDatabase("ConversationDb");
var collection = db.GetCollection<Conversation>("ConversationCollection/documents");
var document = collection.Find(doc => doc.ConversationId == conversationId).FirstOrDefault();
return document;
}
}  

启用日志记录以排除故障:

  • 驱动程序中的命令监控
  • 查看服务器日志

确定时间花在哪里:

  • 在发生任何与mongodb相关的事情之前?(应用程序中与mongodb无关的问题(
  • 服务器选择
  • 查询写入/请求
  • 服务器上的查询处理

使用服务器选择超时、连接超时、套接字超时&maxTimeMS来确定原因。

最新更新