Epson Check Health Utility crashes when using POS for .NET 1.11
We’ve heard several reports of customers with concerns regarding the Epson OPOS ADK for .NET when used in conjunction with POS for .NET 1.11. Specifically, the Epson Check Health Utility produces the following error when run with POS for .NET 1.11:
CheckHealthTest.exe – Common Language Runtime Debugging Services
Application has generated an exception that could not be handled.
Process id=0xbec (6052), Thread id=0xbf0 (3056)
Click OK to terminate, Cancel to debug.
It appears that the Epson CheckHealthTest.exe application is compiled against the 1.x version of the .NET Framework and the POS for .NET 1.11 libraries are compiled against the .NET 2.0 Framework. When the Epson application starts up it loads the .NET 1.1 framework and then attempts to load the POS for .NET binaries which fail because they require the .NET 2.0 framework (only one version of the .NET Framework can be loaded in a process).
The fix is to create a .config file for the Epson application so that it loads to .NET 2.0 Framework when it starts. A sample config file is below. The config file must be named ‘CheckHealthTest.exe.config’ and must be located in the same directory as ‘CheckHealthTest.exe’.
<?xml version ="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>
You can find more details about this topic in the POS for .NET 1.11 Release Notes (see the .NET Framework Compatibility Issues section).
This code sample is subject to the terms of the Microsoft Limited Permissive License (Ms – LPL) . If you do not agree to these terms, do not use the code.
- Shayna
Comments
Anonymous
June 19, 2007
Nice fix. Thanks. Is Epson completely inept?Anonymous
June 21, 2007
The comment has been removedAnonymous
July 16, 2007
Ramesh, I also have the performace problem. I'm using the same setup as you and performance is so slow. Drawer opening takes more then 5 seconds ! And printer starts not printing after 3 to 4 seconds. Also when printing long tickets (60-80 lines) the printer stops at some points during aprox 1 sec. and then continues printing. No problems at all when using "Generic/Text Only" printing. Did you find a solution ?Anonymous
August 02, 2007
Hi Ramesh and Joaquin, I have the same problem. Have you solved? Please Help meAnonymous
August 14, 2007
Thanks. Nice fix.Anonymous
August 15, 2007
After receiving several comments to this blog post, we contacted Epson directly to have them comment on the issue. They have been looking into it, and below is their initial response as they continue to investigate: Here is some quick testing/analysis: Epson POS for .NET 1.9 ADK SO v1.9.311. Configuration: .NET Framework 2.0 & MSFT POS for .NET 1.1 Note: Epson POS for .NET 1.9 is strictly synchronized to MSFT POS for .NET SDK 1.1 (UPOS 1.9). You must have this exact version match - no forward compatibility with MSFT POS for .NET SDK.
- CheckHealth successful using TM-H6000III w/USB I/F.
- Print speed using PrintNormal method seems OK, no noticeable slowdown in speed. Regarding MSFT POS for .NET 1.11, Epson install kicks out on this version, however the error message denotes that an 'older' MSFT POS for .NET SDK version is installed - this is incorrect. It actually is a newer version 1.11 (as opposed to 1.1), this should be re-stated. This logic has an upper bound version check, which seems to be throwing things off. Craig Jenson's remark for getting around this is accurate, first install MSFT POS for .NET 1.1, followed by the Epson 1.9, then the MSFT POS for .NET 1.11. The other suggestion to change the registry works OK, but the end-user is manipulating the registry which is not usually a good thing. Basically temporarily changing the MSFT POS for .NET installed Product Version from 1.11.1139.0 to 1.1.725.0, install the Epson 1.9, then re-assign back to 1.11.1139.0. The Epson 1.9 CheckHealth was successful with good performance (small amount of data) for MSFT POS for .NET 1.1 and 1.11. Next: Here's some additional testing results implementing the TM-T88IV: Note: The Epson POS for .NET 1.9 ADK only supports the TM-T88IV model. It should not be used for TM-T88III as indicated. Please note the TM-T88III is an older model of the printer, no longer sold, and has been superseded by the TM-T88IV. There are differences in firmware among other performance improvements. Tricking the driver into thinking it is talking to a T88IV when in reality it is a T88III connected will cause problems. See below for more details. Both using the TM-T88IV POSPrinter object:
- Physical TM-T88III device:
- CheckHealth failed at Claim method call, timeout exceeded.
- DeviceID not matching - expected result.
- Note: So if the blog report of an end-user using a TM-T88III, they may have tried manipulating the configuration in some way, hence the undesired results.
- Physical TM-T88IV device:
- CheckHealth successful with good printing performance.
- It did take a up to 3 seconds to initiate the 'Print' button dialog though, so there may be some latency in the SO. We are looking into reasons for this. Suggestions for Support: Epson does have product support available at http://www.pos.epson.com and suggestion is to contact Technical support there for developer’s having issues with compatible products and Epson ADK level Support. We have contacted the Advanced Product Development Team within Epson Long Beach to do additional research to see if others have noted similar problems. We have also been working with Epson Japan where the software drivers are developed for their input and will continue this dialog until total satisfactory resolution is completed. Thank you,
- Epson