如何替换VB6 Com+ .NET 的 DLL

发布于 2024-07-18 19:01:35 字数 293 浏览 7 评论 0原文

我们的 asp 经典应用程序中使用了 Com+ VB6 DLL。 升级到 IIS 6.0 和 Windows Server 2003 后,它似乎给我们带来了问题。 我们应该如何用.NET(2.0)功能来替换它?

  • 网络服务?
  • .NET 中的 Com DLL?
  • 还有其他选择吗?

假设重写 asp 经典页面是不可能的。

编辑:如果将其重写为 com 可访问的程序集,这不会给 Com+ 带来同样的问题吗?

We have a Com+ VB6 DLL used in our asp classic application. After upgrading to IIS 6.0 and Windows Server 2003 it seems to be causing us problem. How should we replace it with .NET (2.0) functionality?

  • A Webservice?
  • A Com DLL in .NET?
  • Some other option?

Assume re-writing the asp classic pages is out of the question.

EDIT: If rewriting it as a com accessible assembly, won't this leave the same issues with Com+?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

瑕疵 2024-07-25 19:01:35

这实际上取决于 com dll 的使用方式。 我假设您需要保留经典的 asp 应用程序,否则您将重写整个内容。

如果 com dll 正在使用站点的会话或 http 上下文,则您不需要 Web 服务。 我会将 com 代码移至 .NET 库程序集,将其注册到互操作 (tlbimport/tlbexport) 中,并使用经典 asp 应用程序中的互操作程序集与新的 .NET 库进行交互。

It really depends on how the com dll is being used. I'm assuming that you need to keep the classic asp application otherwise you'd rewrite the whole thing.

You don't want a webservice if the com dll is working with the session or http context of the site. I would move the com code over to a .NET Library Assembly, register it with interop (tlbimport/tlbexport) and use the interop assembly in your classic asp app to talk with the new .NET library.

怂人 2024-07-25 19:01:35

这在很大程度上取决于 COM 组件正在做什么,但最简单的选择可能是 .NET 中的 COM 库。

这可能需要对调用客户端(asp 经典应用程序)进行最少的更改。 如果您将 API 设置为与您的 VB 6 COM API 相匹配,那么它应该是一个简单的替代品。

在某些情况下,迁移到 Web 服务或其他一些选项可能会更干净,但需要对应用程序进行更多更改。 如果没有更多信息,就不可能确定这是否值得。

This depends a lot on exactly what the COM component is doing, but the simplest option would probably be a COM library in .NET.

That would likely require the least amount of changes to the calling client (asp classic app). If you setup the API to match your VB 6 COM api, it should be pretty much a drop in replacement.

Migrating to a webservice or some other option might be cleaner in some cases, but would require more changes to your application. Without more information, it's impossible to determine whether this would be worthwhile or not.

乖乖兔^ω^ 2024-07-25 19:01:35

我假设您的 VB6 组件正在使用一些 COM+ 服务。 如果是这样,那么我将在 .NET 中将 VB6 组件重写为 ServicedComponent,然后使用 Regsvcs.exe 将其注册到 COM+。

如果您的 VB6 组件正在访问数据库(或进行其他长时间运行的单元调用),那么,作为将 VB6 组件迁移到 .NET 的额外好处,您可能会看到在存在许多并发时消除了性能问题。向您的组件发出请求。 有关如何以及为何的详细说明,请参阅文章 从 MTS 移植到 COM+ 时保持应用程序性能

I'm assuming that your VB6 component is using some COM+ services. If so, then I would rewrite the VB6 component in .NET as a ServicedComponent and then register it with COM+ using Regsvcs.exe.

If your VB6 components are accessing a database (or making other long running out of apartment calls) then, as an added benefit of migrating your VB6 component(s) to .NET, you may see the elimination of performance issues when there are many concurrent requests to your components. For a great description of how and why see the Avoid Long Running Method Calls from a Single-Threaded Apartment (STA) section from the article Preserving Application Performance When Porting from MTS to COM+.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文