zoukankan      html  css  js  c++  java
  • WCF 服务调用RFC 出现异常

    我在VS2010的WCF项目用connecter 3.0 调用 RFC  运行到
           IDestinationConfiguration ID = new SAPConfig();
          RfcDestinationManager.RegisterDestinationConfiguration(ID);
    出现异常如下:
    “SAP.Middleware.Connector.RfcDestinationManager”的类型初始值设定项引发异常。
    其innerexception 是{"当不在独立 exe 内部运行时,必须指定 exePath。"}

    在 http://bbs.csdn.net/topics/390317439  找到方法解决

    你的web.config 有没有
    <system.serviceModel>
            <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    </system.serviceModel>

    但是这个要在服务里面增加 属性 有没有权限整个项目加

    [AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Required)]
    后来发现

    //SAP.Middleware.Connector 里面通过HttpContext.Current来判断这是一个web还是winform程序
    //但是在WCF里面HttpContext.Current为null 所以在wcf里面会判断出错 导致取配置文件出错
    //人工新建一个HttpContext.Current 创建好连接后在手工置为null。很傻很天真...
    HttpContext.Current = new HttpContext(new HttpRequest("", "http://127.0.0.1/", ""),
    new HttpResponse(new StringWriter()));

    //创建连接
    RfcDestination RfcDes = rfcConfig.RfcConfiguration(sapCon);
    HttpContext.Current = null;

     IRfcFunction func = RfcDes.Repository.CreateFunction("Z_TR_I_101_N"); 

    然后就可以了...



  • 相关阅读:
    数据库作业
    数据库知识点⑤
    数据库知识点④
    一个值得纪念的日子
    设计模式之单件模式
    HDU 5441 Travel
    HDU 5483 Nux Walpurgis
    Markdown 测试
    HDU 3271 SNIBB
    HDU 5536 Chip Factory
  • 原文地址:https://www.cnblogs.com/szfxsl/p/3481671.html
Copyright © 2011-2022 走看看