在 IISnode 初始化期间,我的 Meteor 应用程序无法连接到 Mongodb

During IISnode initialisation my Meteor application fails to connect to Mongodb

我们的部署过程遵循停止暂存槽、部署、启动暂存槽、切换到生产槽。

我们的应用程序间歇性地无法初始化并出现以下错误:

我们已经对此类问题进行了调查,可以指向两篇文章:

一个 iisnode github 问题:https://github.com/tjanczuk/iisnode/issues/323 表明由于 IIS 500.1001

增加了连接重试限制

一个流星问题:https://github.com/meteor/meteor/issues/425 包含 mongodb autoReconnect 查询字符串以在 mongo db 的瞬态问题中幸存下来。

问题仍然存在...部署后 15 分钟,应用程序再次稳定,我猜它已连接。

我们将 32 位节点 v0.10.41 与 meteor 1.3.2.4 和 mongodb 3.2.1 一起使用,我们没有使用 Oplog。我们的 mongodb 是用于开发目的的单个实例

我们的 url MongoDb 连接字符串如下所示:mongodb://[user]:[password]@[ipaddress]:27017/app?autoReconnect =真

Error: failed to connect to [[ipaddress]:27017]
at Object.Future.wait (D:\home\site\wwwroot\programs\server\node_modules\fibers\future.js:398:15)
at new MongoConnection (packages/mongo/mongo_driver.js:213:27)
at new MongoInternals.RemoteCollectionDriver (packages/mongo/remote_collection_driver.js:4:16)
at Object.<anonymous> (packages/mongo/remote_collection_driver.js:38:10)
at Object.defaultRemoteCollectionDriver (packages/underscore/underscore.js:750:1)
at new Mongo.Collection (packages/mongo/collection.js:102:40)
at AccountsServer.AccountsCommon (packages/accounts-base/accounts_common.js:23:18)
at new AccountsServer (packages/accounts-base/accounts_server.js:18:5)
at meteorInstall.node_modules.meteor.accounts-base.server_main.js (packages/accounts-base/server_main.js:9:12)
at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:141:1)
- - - - -
at [object Object].<anonymous> (D:\home\site\wwwroot\programs\server\npm\node_modules\meteor\npm-mongo\node_modules\mongodb\lib\mongodb\connection\server.js:556:74)
at [object Object].emit (events.js:106:17)
at [object Object].<anonymous> (D:\home\site\wwwroot\programs\server\npm\node_modules\meteor\npm-mongo\node_modules\mongodb\lib\mongodb\connection\connection_pool.js:156:15)
at [object Object].emit (events.js:98:17)
at Socket.<anonymous> (D:\home\site\wwwroot\programs\server\npm\node_modules\meteor\npm-mongo\node_modules\mongodb\lib\mongodb\connection\connection.js:534:10)
at Socket.emit (events.js:95:17)
at net.js:441:14
at process._tickCallback (node.js:448:13)

希望能帮到你。

我们最终做的是转移到 httpplatformhandler,这提供了更多的稳定性。

我们也已迁移到 meteor 1.4,这解决了 mongo 数据库问题,因为应用程序现在与我们的版本兼容。