【问题标题】:Unable to connect to the remote server Gremlin API ---- Gremlin.Net无法连接到远程服务器 Gremlin API ---- Gremlin.Net
【发布时间】:2020-06-13 06:06:30
【问题描述】:

我正在尝试通过 Gremlin.Net 使用 Gremlin API 连接 Azure Cosmos DB。我收到此错误:

System.Net.WebSockets.WebSocketException: 'Unable to connect to the remote server'

凭证是

EndPointUrl: "localhost://8081",
Port: 443
database = "db1";
container = "coll1";
PrimaryKey = "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==";

我已安装 Azure Cosmos DB 模拟器并尝试连接它。并使用以下命令运行模拟器

CosmosDB.Emulator /EnableGremlinEndpoint

【问题讨论】:

  • 请尝试将localhost://8081更改为localhost:8081
  • 收到此错误“无效的 URI:指定的端口无效。”
  • 请尝试使用端口 8901。

标签: azure-cosmosdb azure-cosmosdb-gremlinapi


【解决方案1】:

请尝试以下代码:

        var gremlinServer = new GremlinServer(hostname: "localhost", port: 8901, username: "/dbs/db1/colls/col1", password: "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==");
        using (var gremlinClient = new GremlinClient(gremlinServer))
        {
            //Your code goes here....
        }

基本上问题是您需要使用8901 作为端口(根据说明here 的默认端口)并使用localhost 作为主机名。使用上面的代码,我能够创建一个GremlinClient 的实例。

【讨论】:

  • 我会检查的。如何确认 gremlinEndPoint 正在 8901 上运行?我可以使用 netstat 查看它吗?当我在 cmd 中运行 CosmosDB.Emulator /EnableGremlinEndpoint 时,另一个问题是在一台笔记本电脑上,它启动并打开了 localhost 页面,但几分钟后,它显示一条错误消息,然后在另一台机器上停止,它不显示错误消息并且因此不会停止。我目前远离那台模拟器不会停止的笔记本电脑。
  • 我感觉 Cosmos DB Emulator 不完全兼容。必须自动检查丢失的文件和自动安装,或者至少列出丢失的文件、功能、注册表等
  • 我也在使用模拟器。为了回答你的问题,我最终重新安装了它:)。
  • 我已经尝试重新安装它,但仍然是同样的问题。
  • 您是否从提升的命令提示符运行CosmosDB.Emulator /EnableGremlinEndpoint
【解决方案2】:

检查文件 C:\sdk\apache-tinkerpop-gremlin-console-3.3.4\apache-tinkerpop-gremlin-console-3.3.4\conf\remote-localcompute.yaml,并确保 Gremlin 端点在您的代码中的配置方式与在此文件中的方式相同。可能是您在代码中使用的端口不同,或者您启用了 SSL。这对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多