Open lersh opened 8 years ago
最近发现noip的动态域名有问题,在树莓派上一直不更新,而且不更新就算了,服务器还是一段时间不更新就提示过期,然后就不能解析了。 想了想还是算了就用我自己买的域名服务吧,将多年前买的域名翻出来一看,万网居然转到阿里云了,而且阿里云还提供了api和SDK来操作。 但是我用了C#版(树莓派上装了mono可以跑.net程序)的SDK,发现很奇怪的一点,就是获取解析记录时,Value值(就是解析到的ip)一直是空,一开始以为是阿里云不返回了,后来尝试了下python版的sdk,结果却是能取到value值的,这时终于意识到是阿里的SDK的bug。 经过漫长的单步调试,终于发现问题所在,原来是一个非常愚蠢的bug: alidns的代码public class DescribeDomainRecordInfoResponse : AcsResponse 这里定义了一个私有变量value,但是value是c#的关键字,在为公开变量Value赋值时写的是
public class DescribeDomainRecordInfoResponse : AcsResponse
value
Value
set { value = value; }
好吧,这样永远也赋值不了。难怪永远是空,而且这个错误不止一处,我都要怀疑这代码是不是用机器自动从java代码转换过来了的。
最近发现noip的动态域名有问题,在树莓派上一直不更新,而且不更新就算了,服务器还是一段时间不更新就提示过期,然后就不能解析了。 想了想还是算了就用我自己买的域名服务吧,将多年前买的域名翻出来一看,万网居然转到阿里云了,而且阿里云还提供了api和SDK来操作。 但是我用了C#版(树莓派上装了mono可以跑.net程序)的SDK,发现很奇怪的一点,就是获取解析记录时,Value值(就是解析到的ip)一直是空,一开始以为是阿里云不返回了,后来尝试了下python版的sdk,结果却是能取到value值的,这时终于意识到是阿里的SDK的bug。 经过漫长的单步调试,终于发现问题所在,原来是一个非常愚蠢的bug: alidns的代码
public class DescribeDomainRecordInfoResponse : AcsResponse
这里定义了一个私有变量value
,但是value是c#的关键字,在为公开变量Value
赋值时写的是好吧,这样永远也赋值不了。难怪永远是空,而且这个错误不止一处,我都要怀疑这代码是不是用机器自动从java代码转换过来了的。