C# Azure上的MongoDB:replSet无法获取local.system.replSet配置

C# Azure上的MongoDB:replSet无法获取local.system.replSet配置,c#,mongodb,azure,C#,Mongodb,Azure,我使用的是Azure上的MongoDB。我有两个独立的云服务,其中一个一切正常,但在另一个,MongoDB worker角色被困在一个繁忙的等待角色启动。。。调用OnRoleStart状态 我连接到一个MongoDB工作角色并访问了MongoDB日志文件,发现以下错误: [rsStart] replSet can't get local.system.replset config from self or any seed (EMPTYCONFIG) 有关于如何正常修复此问题的线程,但不适用于

我使用的是Azure上的MongoDB。我有两个独立的云服务,其中一个一切正常,但在另一个,MongoDB worker角色被困在一个繁忙的等待角色启动。。。调用OnRoleStart状态

我连接到一个MongoDB工作角色并访问了MongoDB日志文件,发现以下错误:

[rsStart] replSet can't get local.system.replset config from self or any seed (EMPTYCONFIG)

有关于如何正常修复此问题的线程,但不适用于Windows Azure。除了Azure存储连接字符串之外,我没有为MongoDB worker角色配置任何东西,它在另一个服务中工作,所以我不知道为什么它不适用于此服务。有什么想法吗?

不久前,我试图在Azure中以工作者角色主持RavenDB,但也遇到了很多问题

今天,我认为最好在目标平台上以建议的方式运行数据库,根据本指南,目标平台是Windows服务。这样,您就不必处理Azure特定的问题。要实现这一点,您可以:

与CsPack.exe一起使用可为MondoDB创建包。 我在GitHub上发布了一个类似的解决方案。 在Azure上注册虚拟机测试版,启动一台机器并在那里手动安装MongoDB。 但我想托管DB时最重要的问题是:您计划在哪里存储实际的DB

Azure的CloudDrive是存储在云存储中的VHD,具有最差的IO性能。对于正常的数据库使用,我认为这是不够的。 临时存储,一种云服务本地磁盘空间,具有完美的IO,但一旦VM被删除,您将丢失所有数据。这意味着您通常希望对云存储进行连续备份或至少定期备份,可能是通过CloudDrive。 -具有比CloudDrive更好的IO,但仍然不如短暂存储。
至于您的问题的实际故障排除。我建议使用try-catch包装RoleStart,将其写入日志,启用RDP到框,然后连接并查看实际问题。另一种选择是使用IntelliTrace,但您需要VS Ultimate。另外,如果应用程序需要写入磁盘,请不要忘记Azure需要使用本地资源。

跟踪将同步到Azure Blob存储。你能看一下它们看看错误是什么吗?或者,您是否能够对机器进行RDP以查看发生了什么?最后,这两个服务是否在同一个存储帐户上?如果是,请确保他们有不同的RS名称