编程语言
首页 > 编程语言> > 有没有人遇到过10Gen支持的c#驱动程序的问题

有没有人遇到过10Gen支持的c#驱动程序的问题

作者:互联网

我看到了很多这些错误

“现有连接被远程主机强行关闭”

因为我从开源c#驱动程序切换到10Gen支持的驱动程序,所以在Mongo日志中.一旦发生此错误,我的网站就会无法响应.我觉得它与实现连接池的方式有关.请参阅下面的日志,我正在删除集合中的索引,删除所有项目,然后通过添加我想要的所有行来重新创建集合,然后重新编制集合索引.在完成所有操作后不久,我总是得到错误:’现有连接被远程主机强行关闭’

[conn46] run command admin.$cmd { ismaster: 1 }
[conn46] query admin.$cmd ntoreturn:1 command: { ismaster: 1 } reslen:64 0ms
[conn46] query BtSearchCache.system.indexes reslen:1407 nreturned:7 0ms

drop indexes
[conn46] run command BtSearchCache.$cmd { deleteIndexes: "Board_41", index: "ix_QuickSearch" }
[conn46] CMD: dropIndexes BtSearchCache.Board_41
[conn46] dropIndexes: ix_QuickSearch not found
[conn46] query BtSearchCache.$cmd ntoreturn:1 command: { deleteIndexes: "Board_41", index: "ix_QuickSearch" } reslen:81 1ms

remove all data from collection
[conn46] remove  query: {} 1428ms

insert data (thousands of rows, omitted here)

[conn46] insert BtSearchCache.Board_41 0ms
[conn46] insert BtSearchCache.Board_41 0ms
[conn46] insert BtSearchCache.Board_41 1ms
[conn46] insert BtSearchCache.Board_41 0ms
[conn46] insert BtSearchCache.system.indexes 0ms

create indexes
[conn46] run command admin.$cmd { getlasterror: 1 }
[conn46] query admin.$cmd ntoreturn:1 command: { getlasterror: 1 } reslen:65 0ms

ERROR a few minutes later
[conn46] MessagingPort recv() errno:10054 An existing connection was forcibly closed by the remote host. 192.168.100.216:51111
[conn46] SocketException: 9001 socket exception
[conn46] end connection 192.168.100.216:51111

解决方法:

跟进:谷歌的mongodb用户组也提出了这个问题,大部分讨论都发生在那里.最后,我们发现特定查询导致mongo服务器崩溃(该错误已在当前版本的服务器中修复),而C#驱动程序只是报告导致的连接失败.这不是C#驱动程序中的错误,并且驱动程序无需修复.一旦服务器恢复,C#驱动程序将重新连接.

标签:c,mongodb,mongodb-net-driver
来源: https://codeday.me/bug/20190626/1297783.html