Xaq*_*ron 8 asp.net dns httpwebrequest
我有一个ASP.NET应用程序,我用它来HttpWebRequest经常阅读网页的内容.远程地址没有问题,我的应用程序始终正常工作.
虽然我没有改变任何东西,有时(大约每天一次)我得到这个错误:
the remote name could not be resolved.
Run Code Online (Sandbox Code Playgroud)
为什么以前解析的DNS名称有时无法解析?
Not*_*tMe 10
这种间歇性的解决方案将非常难以解决,而且需要进行配置更改而不是代码解决方案.(提示:阅读所有内容;)
我猜想远程服务器DNS设置为经常过期.可能每天或甚至每12个小时左右.这是TTL(生存时间)设置.如果管理员需要能够快速将站点移动到新服务器,则有时会将其设置为人为的低级别.
您可以通过转到命令提示符并运行来确定它到期的频率:
nslookup
set debug
www.theserverdomain.com
Run Code Online (Sandbox Code Playgroud)
最重要的部分是"AUTHORITY RECORDS:"部分,其下面有一个名为"ttl"的项目.
现在,(我在这里做了一个有根据的猜测),当您查询DNS服务器以解析该服务器将缓存此值的主机名时,可能会发生什么.
但是,一旦它到期,您的服务器将不得不联系上游的另一台服务器以获取IP地址解析,称为DNS转发.如果您和远程服务器之间有很多跳,或者如果站点之间的某个DNS服务器超载,那么它可能会超时并发回您收到的消息.
如果这是真的,那么您唯一可以做的就是对Web服务器主机文件中的DNS和IP地址组合进行硬编码.这通常位于C:\Windows\System32\drivers\etc并且是名为"hosts"的文件.有一个例子说明如何在文件本身中正确编辑它.
在该文件中创建主机映射后,您的Web服务器将不再需要联系DNS服务器来执行名称解析,并且TTL的设置无关紧要.
这里唯一的危险是他们将网站移动到新的IP地址.此时您可以再次更新您的主机文件...
| 归档时间: |
|
| 查看次数: |
4722 次 |
| 最近记录: |