当前位置:编程学习 > asp >>

.NET与SAP的来往

 

 这些天要做一个小项目——用Windows服务调用SAP接口获取数据。网上百度之,确定了方案——用SAP .NET Connector 3.0来与SAP系统交互。用Win7 Ultimate,Visual Studio 2010 Ultimate——于是,我就想用.NET Framework 4.0——于是就有了后来的那个烦人的异常~~~(有时候用最新的东西风险还是不小的)。

  我是把与SAP接口交互的业务逻辑写在一个类库项目中,生成dll后供Windows服务调用。当我安装完服务后,看输出的跟踪日志,看到了异常信息——“SAP.Middleware.Connector.RfcDestinationManager”的类型初始值设定项引发异常。TAT~~

 

 1 ///<summary>

 2 /// 获取RFC连接目标

 3 ///</summary>

 4 private RfcDestination GetDestination()

 5 {

 6   try

 7   {

 8    var destinationName = "lgdderp";//SAP系统标识

 9    IDestinationConfiguration destinationConfiguration = new SAPConfiguration();

10    RfcDestinationManager.RegisterDestinationConfiguration(destinationConfiguration);//这里就引发了那个讨厌的异常~

11    /*返回指定名称的目标对象。RfcDestinationManager会检查目标对象是否已经创建,如果未创建,则向配置对象请求必要的登录参数并创建目标对象。若配置对象未被应用程序注册,则会抛出异常。*/

12    RfcDestination rfcDestination = RfcDestinationManager.GetDestination(destinationName);//

13    RfcDestinationManager.UnregisterDestinationConfiguration(destinationConfiguration);

14    return rfcDestination;

15  }

16     catch (Exception ex)

17     {

18        Logger.Log("获取SAP连接目标时发生异常:" + ex.Message);

19        return null;

20     }

21}

 

  于是我新建一个测试项目,用VS里面的测试项目(好像要安装Resharper 6.0哦~)来调用dll,嘿,居然能够运行正常,用Winform调用时却又引发了异常——头大啊!去调试,跑到上面所示代码的第10行,就出现异常了~~……后来,去看了异常里面的那个InnerException的信息——“混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在4.0 运行时中加载该程序集”。OMG,灵感终于出现,也许是运行时版本兼容的问题。于是百度之:http://www.zzzyk.com/kf/201111/109736.html, 照着修改后,在Winform里面没问题了。可是!可是Windows服务里面还是报那个异常——虽然我也把服务项目里面的那个app.config文件修 改了!好吧,换FR版本——换成3.5吧~……终于改完,安装,查看输出日志——OK!好了。

 

 

 

红枫一叶

补充:Web开发 , ASP.Net ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,