.NET 4.0实体框架超时已过期

Alv*_*vos 10 c# timeout entity-framework-4

我正在使用MVC3,.NET framework 4.0和Entity Framework开发一个ASP.NET网站.当我运行应用程序并执行一个简单的选择SQL Server 2005数据库时,我收到以下错误:

"抛出了System.Data.SqlClient.SqlException:"超时已过期.操作完成之前经过的超时时间或服务器没有响应."

这就是事情.我尝试登录并从管理工作室执行相同的查询,它工作.我使用.NET framework 4.0和实体框架开发了一个小型控制台应用程序,执行完全相同的查询,并返回了我需要的信息.我甚至从使用Entity框架切换到ADO.NET类(SqlConnection和SqlCommand),并且当从SqlCommand实例执行select时,我得到完全相同的错误.

当我使用实体框架创建模型时,我能够从向导连接到数据库,它工作正常.我创建的所有类都没有任何问题.

请不要告诉我解决方案是增加任何超时,因为查询非常小(20条记录顶部),正如我之前说的,当它从控制台应用程序使用相同的技术甚至相同的代码运行时工作正常下面.

这是给我问题的代码:

MLIBEntities dbMLIB = new MLIBEntities();

var searchResults = (from s in dbMLIB.Sets
                     where s.setmap1.StartsWith(accountNumber)
                     select s);

return searchResults.ToList();
Run Code Online (Sandbox Code Playgroud)

运行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=&quot;Data Source=HERPADERP;Initial Catalog=MLIB;Integrated Security=True;MultipleActiveResultSets=True;Connect Timeout=200&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

我猜这肯定是MVC Web应用程序中某处的配置问题,或者我只是遗漏了Web.config文件中的内容.有没有人有这个问题?我知道这真的很奇怪.

谢谢您的帮助.我真的没有想法.

最后一件事.我运行了SQL分析器,似乎查询永远不会进入数据库服务器.任何想法为什么会发生这种情况?

Alv*_*vos 0

感谢大家的帮助。看起来查询确实返回了大量记录,并且从 Web 应用程序运行它时导致超时,而鉴于其性质,在控制台应用程序中并没有发生这种情况。

再次感谢你!