<分区>
我正在使用 MVC3、.NET 框架 4.0 和 Entity Framework 开发一个 ASP.NET 网站。当我运行应用程序并对 SQL Server 2005 数据库执行简单选择时,出现以下错误:
“抛出了 System.Data.SqlClient.SqlException:”超时已过。在操作完成之前超时期限已过,或者服务器没有响应。”
事情就是这样。我尝试登录并从管理工作室执行相同的查询并且它有效。我使用 .NET Framework 4.0 和 Entity Framework 开发了一个小型控制台应用程序,它执行完全相同的查询,它返回了我需要的信息。我什至从使用 Entity Framework 切换到 ADO.NET 类(SqlConnection 和 SqlCommand),当从 SqlCommand 实例执行选择时,我得到了完全相同的错误。
当我使用 Entity Framework 创建模型时,我能够从向导连接到数据库并且工作正常。我创建了所有类,没有任何问题。
请不要告诉我解决方案是增加任何超时,因为查询真的很小(最多 20 条记录),正如我之前所说,当使用相同的技术甚至相同的技术从控制台应用程序运行它时,它工作正常我放在下面的代码。
这是给我问题的代码:
MLIBEntities dbMLIB = new MLIBEntities();
var searchResults = (from s in dbMLIB.Sets
where s.setmap1.StartsWith(accountNumber)
select s);
return searchResults.ToList();
运行searchResults.ToList()时抛出异常;
这是实体类正在使用的我的连接字符串。我确定它使用了连接字符串,因为我修改了它并检测到了语法错误。
<connectionStrings>
<add name="MLIBEntities" connectionString="metadata=res://*/Models.MlibDBModel.csdl|res://*/Models.MlibDBModel.ssdl|res://*/Models.MlibDBModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=HERPADERP;Initial Catalog=MLIB;Integrated Security=True;MultipleActiveResultSets=True;Connect Timeout=200"" providerName="System.Data.EntityClient" />
</connectionStrings>
我猜这一定是 MVC 网络应用程序某处的配置问题,或者我只是在 Web.config 文件中遗漏了某些内容。你们中有人遇到过这个问题吗?我知道这真的很奇怪。
感谢您的帮助。我真的没主意了。
最后一件事。我运行了 SQL 事件探查器,但查询似乎从未进入数据库服务器。关于为什么会发生这种情况的任何想法?