首页 > Web开发 > 详细

【SAP】.Net 4.5~4.8 调用SAP connector for dotnet 3.0

时间:2021-04-08 15:27:38      阅读:31      评论:0      收藏:0      [点我收藏+]

官方指导

https://docs.microsoft.com/zh-cn/azure/logic-apps/logic-apps-using-sap-connector#ise-prerequisites

PS: 不愧是世界第一的ERP,连微软官方都写操作指南,而且提供Azure支持……

Step 1

下载并安装 SAP Connector for dotnet 3.0

安装时,可以选择只解压出dll,或者安装并注册到GAL,对于部署机,建议选择后者,开发机解压拿到dll即可。

安装后,开发相关的dll主要是这些:

技术分享图片

注意,由于SAP官方链接下载是需要客户账户的,所以此处请联系你的业主~

  • 有些文章说需要安装客户端,其实不用。重要的是这个connector。 如果安装客户端,在bin目录里应该也能找到。
  • 关于版本,我始终是秉承有最新用最新的,否则因为某个第三方调用限制你整个框架的版本,并不划算。
  • 根据SAP官方的说明,最新版本的3.0.22是由.Net 4.0 和2.0两个版本支持的,但是4.0的x86和x64版本有一定的功能差异,x86是最全的。因此推荐你的应用程序使用32位运行
  • 按照微软自己的文档,.Net 4.5~4.8 均可以支持这个版本。

Step 2

写测试代码,运行项目。

  • 首先肯定测试编译,我这里只拷了以上四个dll到bin目录并没有通过。查了一些说法,说要求win7的系统环境,直接在win7下编译了一次,通过。

但是我的部署目标是win Server2016,在win7下编译通过后,移植肯定也不能用。疯狂翻博客后得到这么一些观点:

  • 某个SAP的客户端测试程序是编译后win10可用的
  • ASP.Net 项目提示找不到sapnco.dll依赖,解决方案是安装vc++2005
  • VC++2010也行

我走的弯路是这些:

  • 在win7的环境下编译,尝试整个移植到win10 x64机器上运行
  • 解决win10 1903后系统不支持安装vc++ 2005方案
  • 安装vc++2010
  • win7 下编译的独立进程在win7的跳板机上运行,主服务RPC调用。

既然是弯路,肯定都没成功。虽然SAP贵为世界第一ERP,相关博客也意外的多,但是毕竟环境是比较早期的(客户的是02年上线的,操作系统竟然还可见win2000);

最接近成功的尝试是win7跳板环境。

我觉得太!不!优!雅!了

Step 3

既然是环境问题,总是能通过逆向依赖解决嘛。而且某个客户端测试工具可以在win10下运行这条信息,始终让我坚信这个问题是有解的!

Dependency工具扫描会给出大量的系统api调用,干扰检查依赖。又找工具吧,发现竟然VS自己就提供了极佳的辅助工具 —— 【VS DumpBin

测试!

分别使用dumpbin 工具检查了四个SAP的dll,结果如下:

技术分享图片

技术分享图片

技术分享图片

技术分享图片

不熟悉系统dll的话,一个笨办法,通过search everything 逐个检查系统中有没有。 如果有且在系统GAL里,那就跳过。这样一来,最终锁定了这么几个dll:

  • MSVCR100.dll

事实上,这个依赖是VC++2010的。至于前边测试的VC++2010安装后没有通过,最终确定是x86和x64的问题。

使用DependencyWalker 检查后会发现大量的Windows7 系统依赖,但微软官方说法是.Net Framework 4.0-4.8均支持,因此可以锁定问题到编译层面。

Step 4

直接给编译目录拷贝了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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!