Я разрабатываю сайт ASP.NET с использованием MVC3,.NET framework 4.0 и Entity Framework. Когда я запускаю приложение и выполняю простой выбор базы данных SQL Server 2005, я получаю следующую ошибку:
"Исправлено System.Data.SqlClient.SqlException:" Истекло время ожидания. Период ожидания истекает до завершения операции или сервер не отвечает. "
Вот что. Я попытался войти в систему и выполнить тот же запрос из студии управления, и это сработало. Я разработал небольшое консольное приложение, использующее .NET framework 4.0 и инфраструктуру сущности, выполняющую тот же самый запрос, и он вернул необходимую мне информацию. Я даже переключился с использования инфраструктуры Entity на классы ADO.NET(SqlConnection и SqlCommand), а при выполнении выбора из экземпляра SqlCommand я получаю ту же ошибку.
Когда я создал модель с использованием структуры сущности, мне удалось подключиться от мастера к базе данных, и она работала нормально. Я создал все классы без проблем.
Пожалуйста, не говорите мне, что решение заключается в увеличении тайм-аута, потому что запрос действительно маленький (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, и похоже, что запрос никогда не попадает на сервер базы данных. Любые идеи, почему это могло произойти?