2017-10-02 8 views
0

は、私はそれが私のローカルホスト上で正常に動作している 、クイックスタートからの接続文字列を使用しますが、私が展開したら、私は、接続文字列をチェックしました接続AzureのCosmosDBに私はCosmosDBに接続しようとしています

{ 
name: "MongoError", 
message: "Database account is not found" 
} 

var express = require('express'), 
mongoose = require('mongoose'); 
mongoUri = "mongodb://dbaccount:[email protected]:port/dbNAME?ssl=true'; 
options = { 
"useMongoClient":true, 
"promiseLibrary": global.Promise, 
"ssl": true 
} 
mongoose.Promise = global.Promise; 

var db = mongoose.connect(mongoUri,options) 

を取得します。ローカルホストに接続することもでき、Robo 3Tを使用してdbに接続することもできます。

+0

ときは、MongoDBのAPIまたはDocumentDBのAPIを選んだのですか? MongoDB APIが必要です。また、質問を編集して接続文字列を共有した場合(実際のデータベース名またはアクセスキーを確認してください)に役立ちます。あなたの例では、 'dbaccount'と' dbhost'だけを持っています。接続文字列の形式の問題があるかどうかは分かりません。 –

答えて

2

TL; DR:WebアプリケーションのIPをAzureにIPアクセス制御リストに追加します。

enter image description here

私はローカルに接続して、ロボ3Tとができ、正確に同じ問題を持っていたが、私はアズールでアプリを展開したら、私はこのエラーを受け取っ:

MongoError: Database account is not found 
at Function.MongoError.create (D:\home\site\wwwroot\node_modules\mongodb-core\lib\error.js:31:11) 
at D:\home\site\wwwroot\node_modules\mongodb-core\lib\connection\pool.js:497:72 
at authenticateStragglers (D:\home\site\wwwroot\node_modules\mongodb-core\lib\connection\pool.js:443:16) 
at Connection.messageHandler (D:\home\site\wwwroot\node_modules\mongodb-core\lib\connection\pool.js:477:5) 
at TLSSocket.<anonymous> (D:\home\site\wwwroot\node_modules\mongodb-core\lib\connection\connection.js:331:22) 
at emitOne (events.js:116:13) 
at TLSSocket.emit (events.js:211:7) 
at addChunk (_stream_readable.js:263:12) 
at readableAddChunk (_stream_readable.js:250:11) 
at TLSSocket.Readable.push (_stream_readable.js:208:10) 
at TLSWrap.onread (net.js:594:20) 

だから、チャンスが高いです、 Azureのファイアウォール設定で何かが間違っているということです。

私の場合、私はAzureのdbでIPアクセスコントロールを無効にしましたが、エラーは消えてすべてが期待通りに機能しました。 IPアクセスコントロールをオンに戻し、WebアプリケーションからIPを追加してアクセスを許可しました。それはトリックを行う必要があります。 ローカルIPは開発目的のデフォルトとして既に追加されているため、ローカルホストからアクセスできると思います。

詳細については、このマイクロソフトドキュメントを参照してください:あなたはコスモスDBをセットアップ https://docs.microsoft.com/en-us/azure/cosmos-db/firewall-support

+1

これは私の同じ問題でこの答えを見つけたときに "MongoError:authentication fail"を受け取っていたことを除いて、私の問題を解決しました。 –

関連する問題