0

我目前正在尝试使用 openstack.net sdk 在 Rackspace Cloud DNS 服务上创建一个域,但没有任何反应。

我得到了我的 rackspace 帐户,它被激活了,我也得到了我的 API 密钥。

我编写了一个控制台应用程序来测试我的代码,但结果总是“WaitingForActivation”,我找不到任何使用 openstack.net sdk 的 cloudDNS 文档。

谁能看看我的代码并告诉我我做错了什么。

私有静态字符串 RackSpaceUserName { get { return "username"; } }

    private static string RackSpaceUserApiKey
    {
        get { return "apikey"; }
    }

    private UserAccess RackSpaceUser
    {
        get
        {

            IIdentityProvider identityProvider = new CloudIdentityProvider();

            var userAccess = identityProvider.Authenticate(Cloudidentity);

            return userAccess;
        }

    }

    private static CloudIdentity Cloudidentity
    {
        get
        {
            var ci = new CloudIdentity
            {
                APIKey = RackSpaceUserApiKey,
                Username = RackSpaceUserName
            };

            return ci;
        }
    }


    static void Main(string[] args)
    {
        var ParkedDomain = new CloudDnsProvider(Cloudidentity, null, true, null);

        List<DnsDomainRecordConfiguration> dnsrecords = new List<DnsDomainRecordConfiguration>();

        dnsrecords.Add(new DnsDomainRecordConfiguration(DnsRecordType.Ns, "testdomain.com", "dns1.stabletransit.com", TimeSpan.FromMinutes(20), null, null));

        dnsrecords.Add(new DnsDomainRecordConfiguration(DnsRecordType.Ns, "testdomain.com", "dns2.stabletransit.com", TimeSpan.FromMinutes(20), null, null));

        List<DnsSubdomainConfiguration> subdomains = new List<DnsSubdomainConfiguration>();

        subdomains.Add(new DnsSubdomainConfiguration("info@testdomain.com", "test", ""));

        DnsDomainConfiguration dnsd = new DnsDomainConfiguration("testdomain.com", TimeSpan.FromMinutes(20), "info@testdomain.com", "", dnsrecords, subdomains);

        DnsConfiguration dnsconfig = new DnsConfiguration(dnsd);

        var result = ParkedDomain.CreateDomainsAsync(dnsconfig, AsyncCompletionOption.RequestCompleted, CancellationToken.None, null);

        Console.Write(result.Status);

        Console.ReadLine();
    }

result.Status 的值始终返回“WaitingForActivation”,当我检查我的 rackspace 云 dns 仪表板时,没有创建域。

任何帮助将不胜感激。

4

1 回答 1

0

The DNS service uses asynchronous methods. The object returned by CreateDomainsAsync is a Task which represents the asynchronous operation, but that operation may not complete prior to the call returning. You can wait for the request to be complete in your code by any of the following methods:

  1. Await the result (only allowed in an async method, which Main cannot be).

    await result;
    
  2. Access the Task<TResult>.Result property.

    var completedResult = result.Result;
    
  3. Call the Task.Wait method.

    result.Wait();
    
于 2014-05-27T20:29:56.877 回答