无法使用带有openstack.net的Rackspace Cloud DNS创建域

时间:2014-05-23 23:00:26

标签: rackspace-cloud openstacknetsdk

我目前正在尝试使用openstack.net sdk在Rackspace Cloud DNS服务上创建域名,但不会发生这种情况。

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

我写了一个控制台应用程序来测试我的代码,但结果始终是" WaitingForActivation"我无法使用openstack.net sdk找到关于cloudsDNS的任何文档。

任何人都可以看看我的代码,并告诉我,我做错了。

私有静态字符串RackSpaceUserName         {             得到{return"用户名&#34 ;; }         }

    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的值总是返回&#34; WaitingForActivation&#34;,当我检查我的rackspace cloud dns仪表板时,没有创建域。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

DNS服务使用异步方法。 CreateDomainsAsync返回的对象是Task,表示异步操作,但该操作可能在调用返回之前未完成。您可以通过以下任何方法等待代码中的请求完成:

  1. 等待结果(只允许使用async方法,Main不能这样做。

    await result;
    
  2. 访问Task<TResult>.Result属性。

    var completedResult = result.Result;
    
  3. 调用Task.Wait方法。

    result.Wait();