https://docs.microsoft.com/zh-cn/azure/logic-apps/logic-apps-using-sap-connector#ise-prerequisites
PS: 不愧是世界第一的ERP,连微软官方都写操作指南,而且提供Azure支持……
下载并安装 SAP Connector for dotnet 3.0
安装时,可以选择只解压出dll,或者安装并注册到GAL,对于部署机,建议选择后者,开发机解压拿到dll即可。
安装后,开发相关的dll主要是这些:
注意,由于SAP官方链接下载是需要客户账户的,所以此处请联系你的业主~
写测试代码,运行项目。
但是我的部署目标是win Server2016,在win7下编译通过后,移植肯定也不能用。疯狂翻博客后得到这么一些观点:
我走的弯路是这些:
既然是弯路,肯定都没成功。虽然SAP贵为世界第一ERP,相关博客也意外的多,但是毕竟环境是比较早期的(客户的是02年上线的,操作系统竟然还可见win2000);
最接近成功的尝试是win7跳板环境。
我觉得太!不!优!雅!了
既然是环境问题,总是能通过逆向依赖解决嘛。而且某个客户端测试工具可以在win10下运行这条信息,始终让我坚信这个问题是有解的!
Dependency工具扫描会给出大量的系统api调用,干扰检查依赖。又找工具吧,发现竟然VS自己就提供了极佳的辅助工具 —— 【VS DumpBin】
测试!
分别使用dumpbin 工具检查了四个SAP的dll,结果如下:
不熟悉系统dll的话,一个笨办法,通过search everything 逐个检查系统中有没有。 如果有且在系统GAL里,那就跳过。这样一来,最终锁定了这么几个dll:
事实上,这个依赖是VC++2010的。至于前边测试的VC++2010安装后没有通过,最终确定是x86和x64的问题。
使用DependencyWalker 检查后会发现大量的Windows7 系统依赖,但微软官方说法是.Net Framework 4.0-4.8均支持,因此可以锁定问题到编译层面。
直接给编译目录拷贝了MSVCR100.dll(x86)及四个SAP依赖,测试程序在x64下编译成功,并且运行时调用正确的报出了sap的异常信息。
解决了编译问题,我的系统是ASP.Net的,还需要解决部署问题。
前边说过,由于x86版的sap connector支持功能更完全,所以系统编译的时候需要指定平台为x86. iis Express测试成功后,部署到iis环境上时,需要注意指定对应的应用程序池为 【允许32位应用程序】
【SAP】.Net 4.5~4.8 调用SAP connector for dotnet 3.0
原文:https://www.cnblogs.com/DannielZhang/p/14631640.html