【问题标题】:BizTalk 2010 map scripting complex external assembly throws assembly not foundBizTalk 2010 映射脚本复杂的外部程序集抛出未找到程序集
【发布时间】:2015-02-03 08:47:23
【问题描述】:

场景:将外部 Web 应用程序与安全信息集成。网站调用 BizTalk WCF 服务,其中包含一个(或多个)已使用网站的加密类加密的字段。在发布地图中,我需要将 Web 加密转换为 BizTalk 环境加密(是的,差异是必要的)。这曾经在 SOAP asmx Web 服务数据类型代码中完成,但现在需要在地图或管道中完成。 Map 似乎最容易通过脚本 functoid 引用来实现,在外部程序集中我为一个调用解密器并用另一个重新加密,就像我在旧 Web 服务中所做的一样。

问题:外部程序集相对简单,它由一个具有默认构造函数的类组成,没有参数,一个公共方法接受一个字符串并返回一个字符串。输入是网络加密阀门,输出是我的加密值。我在方法中引用了 3 个自定义库来进行加密交换。没有从脚本functoid 调用任何引用的程序集。所有都添加为地图项目中的参考。都是名副其实的。都是 GAC 的。

然而,当我测试地图时,它给出了以下错误:

函数“ScriptNS0:Myfunction()”失败。调用的目标已引发异常。无法加载文件或程序集“OurCompany.Project.WebEncryption,Version=1.0.0.0,Culture=neutral,PublicKeyToken=123654789abcd”或其依赖项之一。系统找不到指定的文件。

我仔细检查了 GAC_MSIL 文件夹中的版本等,一切都匹配。什么给了?

【问题讨论】:

  • 这是 .NET 4 程序集还是 .NET 2 程序集?可能完全是一个不同的 GAC。
  • 您是否重新启动了主机实例?
  • 没有。在 Visual Studio 中使用测试地图功能。在此步骤中,主机实例不是等式的一部分。

标签: c# biztalk .net-assembly biztalk-2010


【解决方案1】:

ARRRGGGG!诅咒你的 Visual Studio! VS 没有接受对 GAC 的更改,另外我不相信它喜欢我原来的点命名空间/程序集名称。我简化为 NS/Asm 的 MapScripting 并重新启动 VS 并且它工作。啊!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 2017-10-08
    相关资源
    最近更新 更多