将 .NET 对象公开为 COM - web.config 会发生啥

Posted

技术标签:

【中文标题】将 .NET 对象公开为 COM - web.config 会发生啥【英文标题】:Exposed .NET Object as COM - What happens with web.config将 .NET 对象公开为 COM - web.config 会发生什么 【发布时间】:2011-05-01 12:28:49 【问题描述】:

我有一个 .NET 项目,它可以访问 .config 文件(通常是 web.config)来获取配置信息。

如果我从经典 ASP 应用程序访问此 .NET 项目,它如何处理从 web.config 或 app.config 读取数据?它可以?

仅供参考 - 使用 System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration

【问题讨论】:

您是否尝试调用已编译的 ASP.NET Web 应用程序的 dll,我假设您已通过 COM 公开了一些代码?或者您是否编写了一个公开为 COM 的 .NET 库?我很困惑,因为您听起来像是在尝试通过 COM 从 ASP 站点直接访问 ASP.NET 代码。 【参考方案1】:

我很确定通过 COM Interop 调用的 .NET 代码将在与可执行文件名相同的目录中查找“可执行文件名”.config,其中可执行文件名是非托管 exe(调用进程)。

对于经典的 ASP,这可能是 %WINDOWS%\system32\dllhost.exe.config - 我对近十年前做过这样的事情记忆犹新。

如果您可以修改 .NET 项目,更好的选择可能是管理经典 ASP 代码中的配置设置,并通过 .NET 库上的新配置接口传递这些设置。或者使用其他方法(如注册表,或加载您自己的配置文件)。

【讨论】:

以上是关于将 .NET 对象公开为 COM - web.config 会发生啥的主要内容,如果未能解决你的问题,请参考以下文章

将 .NET 类库(主要定义 CRUD 操作)公开为服务

将 COM 对象转换为 .Net 对象

如何手动将 .NET 对象编组为双 COM 接口?

当作为 COM 对象访问时,SslStream 的响应不同

是否可以从 .NET 测试 COM 公开的程序集?

将文件写入 Web 服务器 - ASP.NET