Моя настройка MySql.Data.MySqlClient v6.9.8.0
и Microsoft.Practices.EnterpriseLibrary.Data v6.0.0
.Объединение соединений MySQL с корпорацией Microsoft Enterprise
Программа представляет собой длинную программу, которая непрерывно выполняет прослушивание задач, а затем выполняет задание с использованием какой-либо формы базы данных (в зависимости от того, какой был запрос). Иногда запросы будут поодиночке, иногда между ними должно быть несколько часов. (. Не все время - это прерывистые проблемы)
Я попытался с помощью Pooling=true
в строке соединения, но это вызывает у меня много проблем
Вот пример:
[MySqlException (0x80004005): Authentication to host 'localhost' for user 'root' using method 'mysql_native_password' failed with message: Reading from the stream has failed.]
Отключение pooling
устраняет проблему, но в то же время делает запросы медленнее, потому что мы не можем повторно использовать соединения. Я искал в Интернете, и у многих людей такая же проблема, и единственное исправление/обходное решение, которое я нашел, это Pooling=false
, который я бы скорее избегал, если это было возможно.
Вот пример моего кода запроса:
Database db = this.GetDatabase(databaseName);
List<dynamic> results = new List<dynamic>();
// Run the sql query
using (DbCommand dbCommand = db.GetSqlStringCommand(query))
{
foreach (var parameter in inParameters)
{
db.AddInParameter(dbCommand, parameter.Key, parameter.Value.Item1, parameter.Value.Item2);
}
foreach (var parameter in outParameters)
{
db.AddOutParameter(dbCommand, parameter.Key, parameter.Value.Item1, parameter.Value.Item2);
}
using (IDataReader dataReader = db.ExecuteReader(dbCommand))
{
IDictionary<string, object> instance;
do
{
// Read each row
while (dataReader.Read())
{
instance = new ExpandoObject() as IDictionary<string, object>;
// Populate the object on the fly with the data
for (int i = 0; i < dataReader.FieldCount; i++)
{
instance.Add(dataReader.GetName(i), dataReader[i]);
}
// Add the object to the results list
results.Add(instance);
}
} while (dataReader.NextResult());
}
return results;
}
Любые идеи?
Какой адаптер EntLib.Data -> MySql "вы используете? http://entlibcontrib.codeplex.com/releases Я не вижу ни одного закодированного для EntLib 6. – granadaCoder
Я установил его в форме Nuget, это версия, которая показывает мне –
Просьба сообщить о пакете и версии nuget. Просто найдите строку в файле "packages.config". – granadaCoder