kjb*_*jb4 11 .net c# sql-server asp.net
我们目前正在努力将.net framework v4.5中的asp.net Web应用程序(在IIS 7.5上托管)更新到v4.6.1.在小型低级环境/本地开发中,SQL Server与IIS在同一个盒子上运行,此更新工作正常,不会破坏任何内容.但是,一旦我们在从我们的Web服务器远程托管SQL服务器的测试环境中更新我们的Web服务器,我们的应用程序就无法再建立与数据库的连接.我们收到此错误:
Connection Timeout Expired. The timeout period elapsed while attempting to
consume the pre-login handshake acknowledgement. This could be because the
pre-login handshake failed or the server was unable to respond back in time.
Run Code Online (Sandbox Code Playgroud)
SQL Server使用CLR版本v4.0.30319运行.我们使用Entity Framework版本6.0.0.0进行数据访问,连接字符串全部使用集成安全性.我们是否还需要将托管SQL服务器的盒子更新为.net 4.6.1?我不明白为什么我们的应用程序需要建立与数据库的连接,但我一直无法在MSDN上找到关于此的任何指导.
编辑:
在这次破坏之后,我们将我们的Web服务器降级回.net v4.5,我们能够重新建立与SQL服务器的连接.重新升级到v4.6.1再次导致破损.因此,我们相对确定升级是问题,而不是应用程序代码和/或IIS设置的更改.
您可能需要检查文件夹中的 machine.config 和 web.config 文件windows\micorsoft.net\framework64\v######\config。每个版本的 .NET 都运行在不同的配置文件上。由于两个环境中使用相同的代码,因此它必须来自从这里继承的配置。我猜测 4.6.1 设置为默认连接字符串到 localhost,并且由于本地和开发中的 SQL 位于同一服务器上,因此这不是问题。您可能会发现 .NET 4.5 版本中的配置具有超出 localhost 定义的连接字符串。
如果 4.5 和 4.61 使用相同的配置文件,请确保在该 web.config 中定义实体框架使用的默认连接字符串。
| 归档时间: |
|
| 查看次数: |
3226 次 |
| 最近记录: |