间歇性MongoDB连接问题:尝试以其访问权限

时间:2016-05-18 07:23:40

标签: mongodb azure-web-sites mongodb-.net-driver

在尝试将文档写入我的集合时,偶尔会抛出以下异常。

我正在使用mLabs中托管的MongoDB 3.0.7。我们的应用程序托管在Azure(作为Web应用程序),我使用的是C#2.2.3 SDK。

  

MongoDB.Driver.MongoConnectionException:发生异常时   打开与服务器的连接。 --->   System.Net.Sockets.SocketException:试图访问a   套接字以其访问权限禁止的方式   System.Net.Sockets.Socket.Connect(IPAddress []地址,Int32端口)191.235.xxx.xxx:54128
  在System.Net.Sockets.Socket.Connect(String host,Int32 port)at   MongoDB.Driver.Core.Connections.TcpStreamFactory.Connect(插座   socket,EndPoint endPoint,CancellationToken cancellationToken)at   MongoDB.Driver.Core.Connections.TcpStreamFactory.CreateStream(端点   endPoint,CancellationToken cancellationToken)at   MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelper(的CancellationToken   cancellationToken)---内部异常堆栈跟踪结束--- at   MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelper(的CancellationToken   cancelToken)   MongoDB.Driver.Core.Connections.BinaryConnection.Open(的CancellationToken   cancelToken)   MongoDB.Driver.Core.ConnectionPools.ExclusiveConnectionPool.AcquiredConnection.Open(的CancellationToken   cancelToken)   MongoDB.Driver.Core.Servers.ClusterableServer.GetChannel(的CancellationToken   cancelToken)   MongoDB.Driver.Core.Bindings.ServerChannelSource.GetChannel(的CancellationToken   cancelToken)   MongoDB.Driver.Core.Bindings.ChannelSourceHandle.GetChannel(的CancellationToken   cancelToken)   MongoDB.Driver.Core.Operations.BulkMixedWriteOperation.Execute(IWriteBinding   binding,CancellationToken cancellationToken)at   MongoDB.Driver.OperationExecutor.ExecuteWriteOperation [TResult](IWriteBinding   绑定,IWriteOperation' 1操作,CancellationToken   cancelToken)   MongoDB.Driver.MongoCollectionImpl' 1.ExecuteWriteOperation [TResult](IWriteOperation`1   operation,CancellationToken cancellationToken)at   MongoDB.Driver.MongoCollectionImpl' 1.BulkWrite(IEnumerable' 1个请求,   BulkWriteOptions选项,CancellationToken cancellationToken)at   MongoDB.Driver.MongoCollectionBase' 1.InsertOne(TDocument文档,   InsertOneOptions选项,CancellationToken cancellationToken)

1 个答案:

答案 0 :(得分:2)

如果您达到沙箱限制,就会发生这种情况。我的旧答案Intermittent crashes in Azure Web Application

中有更多详情

要了解沙盒限制,请参阅https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox

还遇到了http://www.freekpaans.nl/2015/08/starving-outgoing-connections-on-windows-azure-web-sites/,这篇文章很好地写在同一主题上

编辑 - 2018年2月

如果您现在正在解决此问题,请转到 Azure门户中的诊断并解决刀片,并检查 TCP连接瓦片。它应该为您提供有关使用最大端口的站点的信息,并允许您监视实例范围内的状态连接。