当前位置: 首页 > 知识库问答 >
问题:

CosmosDB C#Gremlin-发送查询时出现异常

太叔经赋
2023-03-14

摘自:https://docs.microsoft.com/en-us/azure/cosmos-db/create-graph-dotnet

我在 .wait() 部分遇到异常:

   NullReferenceException: Object reference not set to an instance of an object.

   at Gremlin.Net.Driver.Connection.ReceiveAsync[T]()
   at Gremlin.Net.Driver.Connection.SubmitAsync[T](RequestMessage requestMessage)
   at Gremlin.Net.Driver.ProxyConnection.SubmitAsync[T](RequestMessage requestMessage)
   at Gremlin.Net.Driver.GremlinClient.SubmitAsync[T](RequestMessage requestMessage)
   at Gremlin.Net.Driver.GremlinClientExtensions.SubmitAsync[T](IGremlinClient gremlinClient, String requestScript, Dictionary`2 bindings)

代码

    private static string database = "db";
    private static string collection = "col";                                             
    private static string hostname = "grem-test.gremlin.cosmosdb.azure.com";
    public void test()
    {
        var gremlinServer = new GremlinServer(hostname, 443, enableSsl: true,
                                                username: "/dbs/" + database + "/colls/" + collection,
                                                password: authKey);
        var gremlinClient = new GremlinClient(gremlinServer);
        var grem = "g.V()";
        var t = gremlinClient.SubmitAsync<dynamic>(grem);
        t.Wait();

        foreach (var result in t.Result)
        {
            // The vertex results are formed as dictionaries with a nested dictionary for their properties
            string output = JsonConvert.SerializeObject(result);
            Console.WriteLine(String.Format("\tResult:\n\t{0}", output));
        }

共有2个答案

伏欣悦
2023-03-14

我从示例应用程序开始,它使用:

        private static Task<ResultSet<dynamic>> SubmitRequest(GremlinClient gremlinClient, string query)
        {
            try
            {
                return gremlinClient.SubmitAsync<dynamic>(query);
            }
            catch (ResponseException e)
            {
                // They have extra stuff here for the request information that isn't relevant
                throw;
            }
        }

我从那里扩展,除了在另一个查询仍在工作时尝试运行查询时偶尔出现异常之外,从来没有任何问题。我只能假设以这种方式运行查询比直接调用SubmitAsync()更好。

我建议的另一件事是仔细检查服务器参数的值,以防万一。

林铭
2023-03-14

应该是:

    var task = gremlinClient.SubmitAsync<dynamic>(grem);
    task.Wait();

取自Gremlin C#示例:

                 // Create async task to execute the Gremlin query.
                var task = gremlinClient.SubmitAsync<dynamic>(query.Value);
                task.Wait();
 类似资料:
  • 我正在使用hibernate data JPA。这是我的资源库 公共接口MappingRepository扩展了JpaRepository(ConfigMapping,Long){ 现在在我的服务类中,当我试图通过使用 所以我总是遇到例外 注意:vMList是作为Long列表的VM列表

  • 员工与部门之间的关联是多对多的双向关联。 我正在尝试在删除受雇者之前删除关联

  • 如何从Java对象输出Gremlin查询?默认输出()看起来像这不容易阅读。

  • 我试图用Spring Rest发送一个文件列表,但我遇到了这个例外。 类的序列化程序 以下是我的代码的重要部分: 我尝试了以下方法,但没有成功: 发送数组而不是列表 将列表包装在DTO中 发送字节[]但当文件>1.5MB时不起作用 但我得到另一个异常:的POST请求时出现I/O错误。目标服务器上启用了基本身份验证。如果我禁用了它,一切都正常了!下面是目标服务器上的spring-security配置

  • 第一次使用java邮件。我正在遵循本教程,但我已经无法发送基本消息,并且我收到了一个非常奇怪的错误: 奇怪的是,我的代码中没有使用IMAP: 错误发生在最后一行(发送)。我知道smtp服务器正常工作。 有什么建议吗?为什么会发生这种情况?我该如何解决? 编辑:显然,地址/主机在这里发生了更改,我使用的是在实际代码中工作的真实地址/主机。

  • 我使用包对MySQL服务器运行查询 以下是连接设置 它适用于所有查询,只有查询有26个参数: 我一直收到以下错误消息: C:\myprojects\tms\node_modules\mysql2\lib\commands\commands.js:30 this.onresult(err);^ TypeError:this.onresult不是Connection.Query.Execute(C:\