网站无法连接到SQL Server,但控制台应用可以

时间:2018-05-15 03:44:46

标签: c# asp.net sql-server

我有一个带有两个数据库的SQL Server,一个生产数据库和一个开发数据库。 .net 2.0网站使用手动SqlConnection代码访问生产数据库工作正常。另一个数据库正在使用Entity Framework 6.2从较新的ASP.NET MVC应用程序中受到攻击,并且正在出现超时问题。超时第一次需要30秒,但页面在后续刷新时几乎立即返回。两个网站都与数据库位于同一个框中,因此只使用“localhost”进行连接。他们使用的是SQL Server用户登录,而不是Windows身份验证。

我将.edmx.tt文件复制到.net控制台应用程序中,该应用程序使用完全相同的linq查询命中数据库并拉出相同的数据失败没有问题。

然后我创建了一个新的网站,并将相同的代码复制到一个aspx页面中。它在超时时第一次失败,然后在后续尝试中工作(一周前,主开发站点正在做同样的事情)。

我将dev数据库与SQL Server 2008 R2服务器分开,并将其连接到另一个端口上新安装的SQL Server Express实例,并获得相同的结果。

Web服务器是Windows Server 2008标准32位。我将这两个网站和控制台应用程序复制到一个新的框中(我认为是2016年,但事实证明它是2008标准的64位)并获得相同的结果。

开发网站一直在工作,直到几个月前。客户端正在使用本地用户帐户,但有一个域,并希望使用Windows身份验证测试一个旧的vb应用程序,该应用程序访问同一个数据库,并且我已经开始将测试帐户迁移到域。当客户试图稍后,由于一个无关的原因,更改他的密码,我们发现他已经在使用域帐户,但他的笔记本电脑无法连接到域。我们发现其他几台计算机无法连接,即使我在测试期间连接到域的计算机工作正常。一个外部网络“朋友”被带进去弄清楚发生了什么。那时,我失去了实际完成的所有内容。我知道尝试了不同的网络和域配置,并没有修复域问题,但我不知道是什么。但是,生产现场从未失效。

我不知道发生了什么事。还有其他人吗?

哦,如果是提供商问题,我也尝试使用网络应用中的OleDbconnection进行手动连接,但也会因超时问题而失败。

更新 我启动了一个新的DataCenter 2016盒子,在其上安装了IIS和.net,并将网站复制到该盒子中。它可以访问数据库并从其他服务器中提取数据。 我知道修补程序等在原始框中更新,而域和网络正在被操纵,但我不知道它们落后多远。我怀疑某些补丁改变了一些默认或继承的.net配置选项或其他东西。我确实对.net安装进行了“修复”,这没有什么区别。但是,由于生产网站工作正常,我目前不愿意卸载.net或其他任何东西。我担心我会冒这个同样的错误进入生产现场的危险,客户端会被搞砸。

1 个答案:

答案 0 :(得分:0)

由于某种原因,似乎在尝试使用登录前握手确认时已经过了超时时间。 尝试将连接字符串中的连接超时属性增加到60或更多。默认值为15(以秒为单位)。

示例:数据源=(LocalDB)\ v11.0;集成安全性= True; 连接超时= 30