gpt4 book ai didi

opos - 在.NET的OPOS/POS中卡在Open()/Claim()上

转载 作者:行者123 更新时间:2023-12-04 20:01:03 28 4
gpt4 key购买 nike

我正在运行Microsoft POS for .NET。我有一个现金抽屉,条形码扫描仪和票据打印机连接到计算机。使用Microsoft POS for .NET测试应用程序,它们都可以正常工作。

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

现在,我们正在将部署计算机升级到Windows7。我们的开发计算机可以毫无问题地运行此方案。但是,在我目前正在使用的部署计算机上,我遇到了两个问题:

问题1)

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


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


问题2)

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

笔记:


IIS现在在我的测试中以SYSTEM身份运行-没什么区别。
硬件可以在Epson OPOS和Microsoft POS for .NET测试工具中正常工作。因此,仅在Web应用程序的上下文中运行时才出现问题。
该应用程序使用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

最佳答案

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

关于opos - 在.NET的OPOS/POS中卡在Open()/Claim()上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7244168/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com