我已经设置了虚拟机来模拟我的 DevServer。我已经设置了网络连接,以便首先从环回适配器读取数据,第四个从 LAN 读取数据。但出于某种原因,当我在 .ASPX 文件中创建连接字符串:“Provider=SQLOLEDB;Data Source=DevServer; Initial Catalog=myDB; User Id=xxx; Password=yyy”时,它总是从 LAN Dev Server 读取数据,而不是从 VM Dev Server 读取数据。
我不明白这是为什么?
这非常令人沮丧,因为我必须不断从主机背面拔下 cat5e 电缆以断开 LAN 连接,然后它才会从我的 VM 读取数据。然后,不可避免的是,我想在网上搜索一些东西,结果我的连接被拔掉了,我必须重新插入。
我该如何改变这种状况?
欲了解更多信息,请参见下图...
更新: 如果我从命令提示符 ping “DevServer”,它会解析为“192.168.0.2”,这是我的 VM 环回适配器。所以它应该可以工作,但是当它通过 IIS 和 .aspx 时,它会看到 LAN DevServer。所以,显然是某种原因导致 IIS 不监听 VM 而是监听 LAN 地址。
答案1
如果它们都命名为“devserver”,则可能是主机名混淆了。尝试将虚拟“devserver”添加到主机文件中。如果成功,则说明您遇到了 DNS 问题。这可能是由于计算机不够“智能”,无法到达其应该去的地方 :)
答案2
最佳做法是为您的 devserver 和 vmdevserver 使用单独的服务器名称。如果只需要短期重定向,那么 hosts 文件解决方案可能适合您的需求。
无论如何,网络上(域?)有重复的名称都会有问题。
苏格兰皇家银行
答案3
这看起来是一个名称解析问题 - 您需要弄清楚名称是否由 netbios 或主机名解析 - 请参阅这文章
然后,您可以将服务器名称添加到主机和/或 lmhost 文件中。这样做的副作用是,名称将始终解析为您的本地虚拟机
因此,您要么更改连接字符串,要么必须更改主机文件
使用单独的名字似乎是显而易见的事情 - 这就是为什么其他人都使用它们 :-P