Microsoft.PointOfService .NET 4.5 上的 CAS 策略

CAS policy on .NET 4.5 with Microsoft.PointOfService

我正在 Visual Studio 2017 企业版开发销售点 (POS) 应用程序。目标框架是 .NET framework 4.5,我已经安装了 Microsoft POS for .NET 1.12 (OPOS) 并且我能够通过以下方式获得 MSR 卡 reader:

PosExplorer myPosExplorer = new PosExplorer();

到目前为止,它 运行 非常好,直到今天早上安装 True Key Intel 后,我的 POS 在获取 MSR reader 时开始崩溃,并出现以下错误:

the type initializer for microsoft.pointofservice.management.explorer threw an exception.

System.notsupportedexception: this method explicitly uses CAS policy, which has been obsoleted by the .NET framework. In order to enable cas policy for compatibility reasons, please use the newfx40_legacysecuritypolicy configuration switch. please see http://go.microsoft.com/fwlink/?LinkID=155570 for mor information. at system.securitymanager.resolvepolicy(evidence evedence) at microsoft.pointofservice.management.explorer.scanforsoassemblies()

我以前从未遇到过这个错误,所以我开始在网上搜索并找到了这个 page。它基本上说 .NET 4.0 不支持 OPOS(我没有使用!!!)

我正在使用 Git,所以我回滚到以前版本的代码但没有成功。我 运行 新 Windows 和新 Visual Studio 上的 POS,问题仍然存在。

OPOS 有什么问题?我是否缺少某些注册表配置? 当它被删除到 .NET 4.0 而我使用的是 .NET 4.5 时,为什么它一直告诉我有关 CAS 策略的信息? 有没有其他更好的方法来控制 MSR readers、打印机、行显示器等外围设备?

如果可以,我建议您更新到 POS for .NET 1.14.1 并更新您的服务对象。

也就是说,由于您使用的是 .NET 4.5,因此您与所链接的有关 .NET 4.0 的文章处于同一条船上

您应该能够 add the legacy CAS switch 在您的 app.config 文件中使其工作。只需确保以下代码块在您的 app.config 中。请注意,配置文件中可能已经有一个 configuration 元素,因此您只需要添加 runtime 部分。

<configuration>
   <runtime>
      <NetFx40_LegacySecurityPolicy enabled="true"/>
   </runtime>
</configuration>