【发布时间】:2014-04-25 17:51:10
【问题描述】:
我正在开发一个连接到 MS SQL Server 2008 R2 的 MVC 应用程序。开发服务器是 Express 版本 - 我不知道这是否是一个促成因素...
间歇性地,当我从 Visual Studio 运行应用程序(因此它在 Chrome 中打开)时,我在连接到 SQL Server 时遇到错误。
错误如:
- 信号量超时期限已过。
- 基础提供程序在打开时失败。
这是我的连接字符串(我在公开发布之前更改了其中的几个字)
<add name="[MyEntities]"
connectionString="metadata=res://*/Models.[publicword].csdl|res://*/Models.[publicword].ssdl|res://*/Models.[publicword].msl;provider=System.Data.SqlClient;provider connection string="data source=thanos;initial catalog=[DatabaseName];Integrated Security=SSPI;multipleactiveresultsets=True;application name=EntityFramework""
providerName="System.Data.EntityClient" />
我已经通过 Google 搜索了很多,但没有发现任何特别有用的东西 - 我试图弄清楚如何让我的应用程序在遇到连接错误时重试一次,而不是失败,因为它几乎总是在第二次尝试。
有什么建议可以从哪里开始吗?作为管理员,我无权处理服务器,但如果这是解决此问题的地方,我可能可以与管理员协调。
我正在考虑这可能与在本地运行应用程序有关 - 数据库位于离我所在位置几英里远的服务器上。将应用程序部署到服务器后,该应用程序将运行在与数据库相同的物理机上。但我对此感觉还不够好,无法假设一切都会好起来——我不想带着这个假设进入生产阶段,只是为了发现我错了......
【问题讨论】:
-
thanos 是你的本地机器名还是网络名?
-
thanos 是托管 sql server 的服务器的名称
-
如果你有 EF6,你可以看看Connection Resiliency / Retry Logic。
-
确保您的数据库未设置为自动关闭,否则会导致连接时间延长。
标签: c# sql-server asp.net-mvc entity-framework sql-server-2008r2-express