连接到Cassandra API时,Cluster.builder()一直挂在Xamarin中

时间:2018-10-15 10:08:21

标签: c# xamarin cassandra azure-cosmosdb

我正在用Xamarin编写一个应用程序,我想在其中连接Azure Cosmos DB的Cassandra API。 Azure门户提供了一些快速启动代码,应该可以使我开始连接到数据库,但是由于某些原因,该程序保持挂起状态而不会崩溃或继续。

我的调试器停止的行是(下面的更多代码):

  

集群集群= Cluster.Builder()...

该代码是Azure门户提供的快速入门代码的复制粘贴,但它似乎无法正常工作,我在google上找不到与该问题有关的任何内容。该程序永远不会停止,也永远不会继续,并且不会给出错误。

以前有人遇到过这个问题吗?

public MainPage()
    {
        InitializeComponent();


        var options = new Cassandra.SSLOptions(SslProtocols.Tls12, true, ValidateServerCertificate);
        options.SetHostNameResolver((ipAddress) => "<DATABASE>.cassandra.cosmosdb.azure.com");
        Cluster cluster = Cluster.Builder()
            .WithCredentials("<USERNAME>", "<KEY>")
            .WithPort(10350)
            .AddContactPoint("<DATABASE>.cassandra.cosmosdb.azure.com")
            .WithSSL(options)
            .Build();

        ISession session = cluster.Connect("test");

        resultLabel.Text = "test";

        //    string query = "SELECT * FROM test.users";
        //    RowSet rows = session.Execute(query);

        //    foreach (Row r in rows) {
        //        resultLabel.Text = r.GetColumn("email").ToString();
        //    }
    }

    public static bool ValidateServerCertificate(
        object sender,
        X509Certificate certificate,
        X509Chain chain,
        SslPolicyErrors sslPolicyErrors)
    {
        if (sslPolicyErrors == SslPolicyErrors.None)
            return true;

        Console.WriteLine("Certificate error: {0}", sslPolicyErrors);
        // Do not allow this client to communicate with unauthenticated servers.
        return false;
    }

0 个答案:

没有答案