部署 .net DLL 以供 ColdFusion 使用?

Posted

技术标签:

【中文标题】部署 .net DLL 以供 ColdFusion 使用?【英文标题】:Deploying .net DLLs for use by ColdFusion? 【发布时间】:2011-07-13 15:30:03 【问题描述】:

我的公司目前运行一个 .net/sharepoint 内部网和一个 ColdFusion 公共网站。有很多重复的功能和笨拙的 Web 服务层用于支持这两个平台。最近我们一直在探索在我们的 ColdFusion 前端中使用 .net 类,这显示出很大的希望。

尽管有一些与管理 DLL 相关的问题。我们目前只是从服务器上的目录加载 DLL,但似乎一旦 ColdFusion 加载 DLL,您现在可以在不先停止 Coldfusion .Net 服务的情况下再覆盖 DLL。我注意到 ColdFusion 还支持从 GAC 加载类。

对于已走这条路的任何人 - 您如何管理 ColdFusion 使用的 DLL,特别是更新和部署 DLL?我们应该使用程序集缓存吗?还有其他陷阱吗?

【问题讨论】:

【参考方案1】:

如果可能,我强烈建议 GAC,只要您自己开发库(您就是这样,因此需要更新它们),这样您就可以强制执行强命名程序集及其依赖项等。

如果您能够控制 GAC 的一些缺点,就会成为积极因素,例如程序集的运行方式与已编译的框架而不是已安装的框架一样。消除了 .net 框架升级会对您的代码产生不利影响的可能性(即使不太可能)。

使用 GAC 被认为是避免 DLL Hell(依赖地狱)的最佳实践。

http://en.wikipedia.org/wiki/DLL_hell

=)

【讨论】:

它对更新和部署有何影响? GAC 包含版本信息,因此缓存副本不应该成为问题,除非尝试重新部署相同的版本(为什么?) - 在这种情况下,您将不得不回收工作进程。 换句话说,使用 GAC 是否有助于解决他的覆盖、更新和部署“.. 而不先停止 Coldfusion .Net 服务”的问题? Yes :) ...即使它没有并且您必须回收工作线程(不需要),它仍然被认为是比噩梦更好的解决方案DLL 依赖。 如果他试图覆盖一个已经存在的 dll 会发生什么呢?用外行的话来说,如何“回收工作线程”:) 只是试图处理差异。

以上是关于部署 .net DLL 以供 ColdFusion 使用?的主要内容,如果未能解决你的问题,请参考以下文章

从coldfusion调用.net对象上的方法

Coldfusion OpenXml 错误:无法加载文件或程序集“DocumentFormat.OpenXml”

在 .NET 控件中部署非托管依赖 dll

ColdFusion .Net 集成错误:未安装 DotNetExtension

使用发布和 .dll .compiled 文件部署 asp.net 网站

如何在 ColdFusion 中使用 C#.NET 程序集?