我正在运行Microsoft POS for .NET。我有一个现金抽屉,条形码扫描仪和收据打印机连接到计算机。使用Microsoft POS for .NET测试应用程序,它们都可以正常工作。
我们的应用程序是IIS中的ASP.NET Web应用程序。因此,我们从Web应用程序的服务器端实例化OPOS设备,一切正常。自Windows XP / IIS 5.1以来,我们一直在这样做。
我们现在将部署计算机升级到Windows 7.我们的开发计算机运行此方案没有问题。但是,在我目前正在使用的部署计算机上,我遇到了两个问题:
问题1)
条形码扫描程序挂起在Open()方法上。它在那里冻结,永不终止。我发现如果我在以下文件上更改了权限(对每个人的完全访问权限),扫描程序将开始工作。
问题2)
现金抽屉现在呈现出类似的行为:它冻结了Claim()方法。我已经更改了我可以找到的所有文件的权限(甚至加载了sysinternal的Process Explorer)以查找正在使用的文件。这还没有解决问题。
注意:
你见过这种行为吗?你对如何解决它有什么建议吗?
挂起时的堆栈跟踪:
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
答案 0 :(得分:1)
解决方案:将应用程序池切换到经典模式(而不是集成)。它现在就像一个魅力!