Asp.net 为具有长生命周期的COM互操作托管.net程序集?

Asp.net 为具有长生命周期的COM互操作托管.net程序集?,asp.net,com,interop,com-interop,Asp.net,Com,Interop,Com Interop,我有一个组件(一个内置在.net中的程序集),我需要(几乎)访问两个不同网站的每个请求。一个网站是用经典asp编写的,另一个是用asp.net mvc编写的 目前,我引用asp.net解决方案中的程序集,并像调用任何.net程序集一样调用它。在经典的asp网站上,我通过COM包装器调用它 这一切都很好,除了现在我需要这个组件保持活动状态并监视配置文件的更改。在我的asp.net网站中,我可以在应用程序范围中保留引用,我想我可以在asp访问的组件服务中注册它 这是最好的方法吗?此外,通过这种方式,

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

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

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

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


我不知道-有些东西闻起来有点可疑(不,不是我)-我走对了路,还是你看到了更好的选择?

你真的需要一个长时间运行的对象吗?您说您需要监视配置文件更改——当配置更改时,您需要触发一些操作,还是只需要确保每个传入的请求使用组件的最新配置副本?如果是后者,那么标准的.NET配置应该适用于您,而不必考虑对象的生存期


在托管方面,您是否需要使用任何COM+服务?如果没有,那么我就不会使用COM+。如果您希望.NET组件有一个中心位置,为什么不在GAC中注册它?

好的,我想我找到了两种解决方案,这两种方案都适用于此项目:

1) 在应用程序上的global.asa中注册它\u OnStart在应用程序对象中,如下所示
Application(“Someobject”)=Server.CreateObject(“Someobject”)


2) 将其托管在组件服务中,并在其中处理生存期。

我认为您在第二段中的意思是“在经典ASP网站上”。对于ASP.net网站的几乎每个请求以及对传统经典ASP网站的许多请求,都将调用此组件,因此我需要初始化(读取/解析文件)尽快发生。我还需要能够从VBScript(经典的asp站点)调用它,它不能直接调用.net程序集。