.NET 4.0에서 WPF 응용 프로그램에서 호출하는 WCF 서비스가 여러 개 있습니다. QuickBooks Integrator 5.0을 nsoftware (QuickBooks SDK 용 .NET 래퍼 라이브러리)를 사용하면 대부분의 루틴이 정상적으로 작동합니다. 그러나, 그들 중 일부는 새로운 스레드에서 실행하고 거기에 오류, 특히 QuickBooks 파일을 열 수없는 하나의 경우, 나는 SEHException을 포함한 다양한 이상한 오류를 모두 "잘못된 arg 상태 util "및"프로 시저 엔트리 포인트를 찾을 수 없습니다 "QBUtilities.dll 및 액세스 예외 위반.WCF 서비스에서 QuickBooks에 액세스 할 때 AccessExceptionViolation, SEHException 및/또는 Procedure 엔트리 포인트가 QBUtilities.dll에 없습니다.
예를 들어, 클라이언트에서 직접 호출 한 루틴은 예상대로 작동합니다.
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.
}
}
을하지만, 내가 서비스, 산란 내에서 해당 루틴을 호출하는 경우 : 그것을 전화;의 내가 의도적으로 잘못된 QuickBooks에 파일을로드 (치명적인 트랩 가능한 오류 의미 QuickBooks에 내 응용 프로그램이 기대되는 파일을 열 수 없습니다) 가정 해 봅시다 새 스레드 :
Task.Factory.StartNew(delegate { GetCustomerWithQB(CustID); });
그러면 위의 다양한 오류가 발생합니다. GRRRR. 도움?