У меня есть служба WCF (на самом деле несколько), вызываемая приложением WPF, все в .NET 4.0.Используя QuickBooks Integrator 5.0 от nsoftware (библиотека-оболочка .NET для QuickBooks SDK), большинство моих подпрограмм работают нормально.Однако, когда некоторые из них запускаются из нового потока, и возникает ошибка, особенно та, где файл QuickBooks не может быть открыт, тогда я получаю большое количество странных ошибок, в том числе SEHException, оба с недопустимым статусом argutil "and" точка входа в процедуру не найдена "в QBUtilities.dll и нарушение исключения доступа.
Например, подпрограмма, вызываемая напрямую из клиента, работает как положено.Допустим, я намеренно загружаю неправильный файл QuickBooks (то есть QuickBooks не может открыть файл, ожидаемый моим приложением; фатальная ошибка, которую можно отследить) и вызываю его:
GetCustomerWithQB(int CustID)
{
.. set up code
..
try {
..
..
toReturn.QBCustomer.QBCustomer.Get(QuickBooksId); // this goes to QB to do the fetch
}
catch (nsoftware.InQB.InQBException x)
{
// we get, correctly, a 602 "there is a different file open" error.
}
}
Однако, если я вызываю эту подпрограмму из службы, порождая новую тему:
Task.Factory.StartNew(delegate { GetCustomerWithQB(CustID); });
Тогда я получаю множество ошибок выше.Grrrr.Помощь