【发布时间】: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="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"" 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