【问题标题】:'The network path was not found' every first attempt to Azure SQL Server每次尝试 Azure SQL Server 时都“找不到网络路径”
【发布时间】:2016-11-24 01:28:59
【问题描述】:

我正在开发一个 Web 应用程序,使用 Visual Studio 2013 和在 Azure 上创建的 SQL SERVER 数据库。

几乎每次我花费超过 30 秒来构建和重新运行应用程序 (F5) 时,我都会在下面收到此错误。连接sql连接到SQL Timed-out,这是引发的错误。

[Win32Exception (0x80004005): 找不到网络路径]

我重试连接,问题就消失了。 关键是我在这个问题上浪费了很多时间。

已添加信息:

  • 我在 SQL 管理上遇到了同样的问题,第一次尝试找不到网络,第二次尝试成功。
  • 我看到其他计算机在公司上运行其他应用程序(基于 .net),在不同的 SQL Azure 服务器上具有相同的行为,所以在我看来与 azure dns 相关。
  • 我有两个 SQL 连接,连接到同一台服务器,一个用于 OWIN 上下文,另一个用于 Entity Framework 6。两个 MARS 都启用。
  • 我觉得在浏览任何其他网站时都不会遇到同样的问题。
  • 我的计算机是企业域的一部分(我自己设置的,我不是 Windows Server 专家)
  • 我正在使用带有用于以太网的 ThunderBolt 加密狗的 Macbook。

我的连接字符串

<connectionStrings>
    <add name="Container" connectionString="metadata=res://*/Models.MakeItMine.csdl|res://*/Models.**********.ssdl|res://*/Models.**********.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=**********.database.windows.net;initial catalog=db**********;persist security info=True;user id=**********;password=**********;MultipleActiveResultSets=True;App=EntityFramework;Connection Timeout=3;ConnectRetryCount=3;ConnectRetryInterval=1&quot;" providerName="System.Data.EntityClient" />
    <add name="OWINConnection" connectionString="data source=**********.database.windows.net;initial catalog=db**********;persist security info=True;user id=**********;password=**********;MultipleActiveResultSets=True;App=MakeItMine;Connection Timeout=3;ConnectRetryCount=3;ConnectRetryInterval=1" providerName="System.Data.SqlClient" />
</connectionStrings>

我的 IP 设置

我尝试了什么

  • 禁用的 AVG 组件
  • 为家庭/企业禁用 Windows 防火墙 网络
  • 将我的 dns 更改为 Google 的 dns (8.8.8.8/8.8.4.4),如果我打开 nslookup 并尝试解析我的数据库路径,它每次都有效。
  • 更改了我的 sql 连接参数:“Connection Timeout=3;ConnectRetryCount=3;ConnectRetryInterval=1”,因此引发错误所需的时间更短,并且我可以更快地重试并且不会浪费太多时间。

Azure 不允许我“ping”服务器,因为它永远不会返回。所以,我真的很难解决/监控这个问题。

感谢任何有关如何解决此问题的建议。

【问题讨论】:

  • 你能分享你的连接字符串吗(少密码/敏感信息)?您是说 Web 应用程序本身托管在 Azure 中吗? (作为 VM 或应用服务 Web 应用?)
  • @RussellYoung 添加了!不,Web 应用程序正在本地运行。 SQL Server 位于 Azure 上,即使在开发期间也是如此。
  • 你是如何管理 sql db 上的防火墙规则的?我不明白这可能是什么原因,因为它在 30 秒后无法自行修复 - 你看过 stackoverflow.com/questions/35017281/… 吗?你也可以用 SQL Server Management Studio 连接好吗?
  • @RussellYoung,我在防火墙上没有任何特定规则,我曾经使用过“将我的 ip 添加到防火墙规则”这一功能,因为我的其他 azure 服务可以直接连接而没有问题。我看到了这个线程,但我总是在构建/重建项目。我认为这根本不是问题。是的,我在 SQL 管理上也遇到了同样的问题。这是我将在这个问题上添加的重要信息。
  • 所以防火墙可能是问题所在 - SQL Azure 公开了一个公共端点,因此围绕它实施了防火墙 - Azure 内的服务可以访问它,但 Azure 之外的任何人都不能 - 如果你'正在尝试通过 Internet 访问它,并且您的客户端 IP 尚未添加到防火墙以进行排除,您将无法进入。最新的 SSMS 中有一项功能会尝试将您的 IP 添加到排除项中- 这需要时间并且需要你的信任。可能就是这样。将你的 ip 添加到防火墙,然后再试一次,看看你是否进入 1st go。

标签: sql-server asp.net-mvc-3 azure dns


【解决方案1】:

我还没有找到确切的问题,也不是完美的解决方案,但我知道这是一个与 DNS 相关的问题。 所以,我现在的修复是更改我的 Windows HOSTS 文件并将我的数据库 dns 修复到它的 ip。它现在可以工作,为我节省了大量的调试时间。

【讨论】:

    猜你喜欢
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多