У меня есть вызов к стороннему драйверу ODBC следующим образом:
var DbConnection = new OdbcConnection(@"DSN=QuickBooks Data;SERVER=QODBC;OptimizerDBFolder=%UserProfile%\QODBC Driver for QuickBooks\Optimizer;OptimizerAllowDirtyReads=N;SyncFromOtherTables=Y;IAppReadOnly=Y");
var tb = new DataTable();
using (var ad = new OdbcDataAdapter("SELECT * FROM Customer", DbConnection))
{
ad.Fill(tb);
}
Отлично запускается из приложения colsole, занимает несколько секунд.
Но если я ничего не изменю, кроме как запустить его из собственной службы WCF, как это:
[ServiceContract]
public interface IQuickBooksService
{
[OperationContract]
DataTable GetQuickBooksData(string query);
}
public class QuickBooksService : IQuickBooksService
{
public DataTable GetQuickBooksData(string query)
{
var DbConnection = new OdbcConnection(@"DSN=QuickBooks Data;SERVER=QODBC;OptimizerDBFolder=%UserProfile%\QODBC Driver for QuickBooks\Optimizer;OptimizerAllowDirtyReads=N;SyncFromOtherTables=Y;IAppReadOnly=Y");
var tb = new DataTable();
using (var ad = new OdbcDataAdapter("SELECT * FROM Customer", DbConnection))
{
ad.Fill(tb);
}
return tb;
}
}
Я вижу, как водитель работает через панель состояния, которую он предоставляет, но в жалком темпе улитки.
Я немного озадачен. Любая помощь приветствуется.
Примечание: я собираюсь обойти это, если я не решу, это использовать базу данных в качестве очереди сообщений и выполнить (быстрый) опрос консольного приложения для сообщений и поместить результаты обратно в базу данных ( может быть, временная таблица, я не знаю) путем выгрузки данных в XML.