При разработке относительно простого веб-сервиса, который берет данные, предоставленные постом, и записывает их в таблицу базы данных, мы получаем эту ошибку:
Исключение: удаленный сервер возвратил ошибку: (500) Внутренний сервер Er
или же.
Трассировка стека: в System.Net.HttpWebRequest.GetResponse ()
на некоторых серверах, но не на других. Те, кто получают это, являются физическими машинами, другие - виртуальными, и, очевидно, физические серверы гораздо более мощные.
Насколько мы можем судить, проблема в том, что соединения с БД не возвращаются в пулы после каждого запроса. Я использую шаблон использования ниже:
using (VoteDaoDataContext dao = new VoteDaoDataContext())
{
dao.insert_response_and_update_count(answerVal, swid, agent, geo, DateTime.Now, ip);
dao.SubmitChanges();
msg += "Thank you for your vote.";
dao.Dispose();
}
Я добавил вызов dao.Dispose (), чтобы гарантировать, что соединения завершаются, когда метод завершается, но я не знаю, нужно ли это или нет.
Правильно ли я использую этот шаблон? Есть ли что-то еще, что мне нужно сделать, чтобы убедиться, что соединения возвращаются в пулы правильно?
Спасибо!