首页 > 解决方案 > 连接小型 SQL Server (LocalDB) C# 应用程序在第一次运行时总是超时。什么可能导致这种情况?

问题描述

作为练习,我一直在尝试构建Head First C#早期版本(第 2 版)的第一章中描述的数据库应用程序。(O'Reilly 网站上的第 1 章)。

我不得不进行一些修改,因为这本书相当古老,但现在它可以工作了。它有一个 SQL Server ( LocalDB) 数据库,ContactDB.mdf,只包含一个表,People

人员表的定义

唯一的事情是,每次我第一次运行 exe(在启动 Windows 之后)时,我都会SqlException提到超时。该消息是荷兰语的,如果我能找到它,我会把它的英语等价物放在这里。但是尽管错误号相同,但我在网络上遇到的消息却是不同的。我收到的消息指的是握手(再次,对不起语言):

System.Data.SqlClient.SqlException (0x80131904):超出连接超时。尝试使用登录前握手确认时超时时间已过。一个可能的原因是登录前握手失败或服务器无法及时响应。尝试连接到此服务器所花费的时间是 - [Pre-Login]-initialization=16271; 握手=0;

System.ComponentModel.Win32Exception (0x80004005):请求超时

如果我关闭应用程序并再次启动它,我不会收到错误消息。

做一些研究,我发现超时的可能原因可能是查询需要很长时间(我的People表包含 6 行)或防火墙问题。如果应用程序在第二次和后续时间始终运行良好,会不会是防火墙问题?

或者我应该设置一个不同的超时值?

任何想法将不胜感激。

标签: c#sql-serverconnection

解决方案


推荐阅读