在 OPOS / POS for .NET 中保留 Open()/Claim()

发布于 2024-12-01 21:02:39 字数 1574 浏览 2 评论 0原文

我正在运行 Microsoft POS for .NET。我有一个连接到计算机的钱箱、条形码扫描仪和收据打印机。使用 Microsoft POS for .NET 测试应用程序,它们都工作正常。

我们的应用程序是 IIS 中的 ASP.NET Web 应用程序。因此,我们从 Web 应用程序的服务器端实例化 OPOS 设备,一切正常。从 Windows XP / IIS 5.1 开始我们就一直这样做。

我们现在正在将部署计算机升级到 Windows 7。我们的开发计算机可以毫无问题地运行此场景。然而,在我当前使用的部署计算机上,我遇到了两个问题:

问题 1)

条形码扫描仪挂在 Open() 方法上。它冻结在那里,永远不会终止。我发现,如果我更改以下文件的权限(对每个人都有完全访问权限),扫描仪就会开始工作。

  1. 符号控制对象-OCX c:\WINDOWS\system32\scanner.ocx
  2. 服务对象-DLL c:\WINDOWS\system32\stiopos.dll

问题 2)

现金抽屉现在呈现类似的行为:它在 Claim() 方法上冻结。我已经更改了我能找到的所有文件的权限(甚至加载了 sysinternal 的 Process Explorer)以查找正在使用的文件。这并没有解决问题。

注意:

  1. 在我的测试中,IIS 现在作为 SYSTEM 运行 - 这没有什么区别。
  2. 硬件在 Epson OPOS 和 Microsoft POS for .NET 测试工具中运行良好。因此,仅当在 Web 应用程序上下文中运行时才会出现问题。
  3. 该应用程序使用 c:\program files\OPOS\CommonCO\OPOSCashDrawer.ocx 和 c:\program files\OPOS\Epson2\SoDrw14.dll

您见过这种行为吗?您对如何解决它有什么建议吗?

挂起时的堆栈跟踪:

Microsoft.PointOfService.dll!Microsoft.PointOfService.Legacy.LegacyProxy.InvokeMethod(string methodName = "ClaimDevice", ref object[] parameters, bool[] byRef) + 0x94 bytes    
Microsoft.PointOfService.dll!Microsoft.PointOfService.Legacy.LegacyProxy.InvokeMethodAndCheckImpl(string methodName = "ClaimDevice", ref object[] parameters, bool[] byRef) + 0x50 bytes    
Microsoft.PointOfService.dll!Microsoft.PointOfService.Legacy.LegacyProxy.Claim(int timeout) + 0x54 bytes    
Microsoft.PointOfService.dll!Microsoft.PointOfService.Legacy.LegacyCashDrawer.Claim(int timeout) + 0xd bytes    

I am running Microsoft POS for .NET. I have a cash drawer, barcode scanner and receipt printer connected to the computer. Using the Microsoft POS for .NET test application, they all work fine.

Our application is an ASP.NET web application, in IIS. We thus instantiate the OPOS devices from the server-side of the web application, and everything works fine. We've been doing this since Windows XP / IIS 5.1.

We're now upgrading our deployment computers to Windows 7. Our development computers run this scenario without issue. However, on the deployment computer I am currently working with, I have had two issues:

Issue 1)

The barcode scanner hangs on the Open() method. It freezes there and never terminates. I discovered that if I changed the permissions (full access to everyone) on the following files, the scanner would start working.

  1. Symbol control object-OCX c:\WINDOWS\system32\scanner.ocx
  2. Service Object-DLL c:\WINDOWS\system32\stiopos.dll

Issue 2)

The cash drawer is now presenting similar behaviour: it freezes on the Claim() method. I have changed permissions on all the files I could find (even loading up sysinternal's Process Explorer) to find which files were in use. This has not solved the problem.

Notes:

  1. IIS is now running as SYSTEM in my tests - it makes no difference.
  2. The hardware works fine in Epson OPOS and the Microsoft POS for .NET test tool. Therefore, the issue is only when running within the context of a web application.
  3. The application uses c:\program files\OPOS\CommonCO\OPOSCashDrawer.ocx and c:\program files\OPOS\Epson2\SoDrw14.dll

Have you ever seen this behaviour? Do you have any suggestions on how to solve it?

Stack trace when hangs:

Microsoft.PointOfService.dll!Microsoft.PointOfService.Legacy.LegacyProxy.InvokeMethod(string methodName = "ClaimDevice", ref object[] parameters, bool[] byRef) + 0x94 bytes    
Microsoft.PointOfService.dll!Microsoft.PointOfService.Legacy.LegacyProxy.InvokeMethodAndCheckImpl(string methodName = "ClaimDevice", ref object[] parameters, bool[] byRef) + 0x50 bytes    
Microsoft.PointOfService.dll!Microsoft.PointOfService.Legacy.LegacyProxy.Claim(int timeout) + 0x54 bytes    
Microsoft.PointOfService.dll!Microsoft.PointOfService.Legacy.LegacyCashDrawer.Claim(int timeout) + 0xd bytes    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最佳男配角 2024-12-08 21:02:39

解决方案:将应用程序池切换为经典模式(而不是集成模式)。现在它就像一个魅力!

Solution: Switch the app pool to Classic mode (instead of Integrated). It works like a charm now!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文