0

我有一个组件(一个内置在.net 中的程序集),我需要(几乎)访问两个不同网站的每个请求。一个网站是用经典的 asp 编写的,另一个是用 asp.net mvc 编写的。

目前我在 asp.net 解决方案中引用程序集并像调用任何 .net 程序集一样调用它。在经典的 asp 网站上,我通过 COM 包装器调用它。

这一切都很好,除了现在我需要这个组件真正保持活动状态并监控对配置文件的更改。在我的 asp.net 网站中,我可以在应用程序范围内保留一个引用,我想我可以在组件服务中注册它以进行 asp 访问。

这是最好的方法吗?此外,这种方式实际上将托管组件两次 - 一个实例在 asp.net 应用程序范围内,一个实例在组件服务中。我也许可以只让它存在于组件服务中,然后从 asp.net 中引用它。

我不知道 - 有些东西闻起来很腥(不,不是我) - 我是在正确的轨道上还是你看到更好的选择?

4

2 回答 2

0

你真的需要一个长期运行的对象吗?你说你需要监控配置文件的变化——当配置变化时你需要触发一些动作还是你只需要确保每个传入的请求都使用你组件的最新配置副本?如果是后者,那么标准的 .NET 配置应该适合您,而不用担心对象的生命周期。

在托管方面,您需要使用任何 COM+ 服务吗?如果不是,那么我不会使用 COM+。如果您想为您的 .NET 组件提供一个中心位置,为什么不在 GAC 中注册呢?

于 2009-07-29T06:19:57.090 回答
0

好的,所以我想我找到了两个解决方案,对于这个项目都是可以接受的:

1) 像这样在 Application 对象的 Application_OnStart 上的 global.asa 中注册它Application("Someobject") = Server.CreateObject("Someobject")

2)将其托管在组件服务中并在那里处理生命周期。

于 2009-08-19T10:52:22.590 回答