2

我们有一个遗留的 .NET 1.1 应用程序,它还可以与多个系统以及 SAP 系统进行通信。目前我们正在使用 DCOM 连接器进行 SAP 通信。我们决定用 .NET 3.0 SAP 连接器替换 DCOM 连接器,因为最新的 SAP 版本不提供对 DCOM 连接器的支持。但问题是我们不能从 .NET 1.1 dll 调用 .NET 3.0 dll。

我们被认为是以下选项。

(1) 将当前的 1.1 应用程序迁移到 3.5 或最新版本。然而,我们没有得到批准,因为它消耗了巨大的努力,因为应用程序是关键和复杂的
(2) 创建可以充当 1.1 和 3.5 的通信器的中间 VB 组件。它增加了一层并导致架构更改。由于性能问题和架构审查,我们也没有得到批准。
(3) 创建一个通过 .NET SAP 连接器调用 SAP 的 Web 服务,并托管在同一服务器中,并从 .NET 1.1 应用程序中使用它。由于性能问题和架构审查,这也没有得到批准。
(4) 检查 WCF 中任何其他有助于 .NET 1.1 和 .NET 3.0 应用程序之间通信的机制。由于性能问题和架构审查,这也没有得到批准。
(5) 使 .NET 3.5 类公开为 COM 对象(进程外),并从您的 .NET 1.1 应用程序中使用这些 COM 对象。我们已尝试此选项,但出现异常“无法添加对 'NETDLL' 的引用。将类型库转换为 .NET 程序集失败。类型库 NETDLL 已从 CLR 程序集导出,无法重新导入为CLR 程序集"

你能帮助我任何其他不需要架构更改并且不会导致性能下降的方法吗?请帮忙

4

2 回答 2

2

我很久以前有过类似的任务。
可能最简单的方法是将您的 .NET 3.5 类公开为 COM 对象(进程外),并从您的 .NET 1.1 应用程序中使用这些 COM 对象。

于 2013-03-12T08:48:46.260 回答
1

最后我们通过以下方法解决了这个问题。我们决定将 .NET 2.0 SAP 连接器用于 1.1 应用程序。我们可以将 .NET 2.0 连接器与 Visual Studio 2003 的 .NET 1.1 IDE 集成或配置。一旦我们将它集成到 Visual Studio 1.1 IDE,我们就可以创建 1.1 SAP 2.0 连接器项目,您可以在其中使用 .NET 2.0 SAP 连接器在您的 1.1 项目中生成 .NET 1.1 dll。

于 2013-03-17T16:58:41.457 回答