多应用Coldfusion 7服务器和CFC路径

时间:2014-11-13 16:37:17

标签: iis coldfusion iis-6 cfc coldfusion-7

我们有一个Coldfusion服务器,它托管多个应用程序,所有这些都在他们自己的子文件夹中。类似的东西:

  • / webrootfolder / applicationA
  • / webrootfolder / applicationB

此外,在开发服务器上,我们每个开发人员都有一个给定应用程序的副本,每个副本都是Subversion工作副本:

  • / webrootfolder / applicationA_dev1
  • / webrootfolder / applicationA_dev2
  • / webrootfolder / applicationA_dev3

由于我们正在运行Coldfusion 7(主要阻力升级),我发现自己陷入困境,因为我想在包中使用CFC。以下是各种问题,尝试过的解决方案以及这些问题:

  • 使用相对组件名称仅在存在单个程序包时才有效,这会使单个文件夹中的组件混乱。
  • 只要您从不引用父包中的组件,就可以使用子包,这在扩展,实例化或使用组件作为cfargument类型时似乎很容易发生。
  • 使用从根开始的完整CFC路径不适用于每个开发人员的多个副本。 **使用带变量的动态路径是我现在的解决方案......直到我意识到它不适用于extends或cfargument类型... **使用服务器映射在开发中不起作用,因为每个开发人员副本都有一个别名。我希望代码是独立于文件夹的。 **使用特定于应用程序的映射(在Application.cfc中定义)不起作用,因为CF7而不是CF8 +。
  • 创建所需CFC的本地虚拟副本,并且包含实际CFC的内容(具有相对路径“../../”)是我以前的解决方案。它有效,但是这些克隆到处都是如此混乱。 **最近,我发现这个解决方案并不总是有效。 Coldfusion因显然包含在各种CFC中的同名函数而感到困惑。
  • 在每个开发人员的计算机上使用开发Coldfusion服务器,允许应用程序路径始终为/webrootfolder/applicationA(由Mark A Kruger建议)。 **这里的主要问题是说服计算机团队让我们安装它。这可能需要很长时间,我担心我没有。 **网络配置可能存在其他问题(可能会提供对DB的访问权限,我不确定),如果甚至允许,还需要通过网络团队并花一些时间。

每个应用程序/文件夹一个网站 - 更改根

我花时间探索在IIS 6中配置网站/应用程序的方式。经过一些研究,我发现可以创建绑定,就像我在Unix / Apache下习惯的那样。目前,所有应用程序都位于Web根目录的子文件夹中。配置了别名,例如,“domain.com/appA”指向“/ webrootfolder / applicationA”文件夹。但它仍然是一个有很多子路径的IIS网站。因此,Coldfusion根(对于CFC和包含)基于该网站的根(/ webrootfolder)。

我进行了快速测试并设法在服务器上安装了第二个IIS网站,绑定到端口8080(而不是默认的80)。我直接将这一点指向/ webrootfolder / applicationA / cfm(这实际上是应用程序的根目录)。有了这个,Coldfusion将该文件夹识别为root,并将“Object”CFC查找为/webrootfolder/applicationA/cfm/Object.cfc

这正是我以前的工作所做的,而且效果非常好。那就是说,这是一家小公司,我担心这个解决方案可能会有问题。主要是:我如何指望人们访问这个网站?使用端口绑定不是非常用户友好(我们的用户不是技术人员)。为每个应用程序设置一个特定的域听起来不错,但可能成本很高,特别是如果涉及到HTTPS(或者我听说过)。子域名可能是另一种解决方案,但似乎也存在类似的问题。

所以...

我错过了什么吗?我是否坚持使用其中一个“凌乱”的解决方案?

我可以访问Coldfusion管理面板以及可能的IIS配置,但如果解决方案影响服务器上其他应用程序的路径或URL,我很可能会受到限制。

1 个答案:

答案 0 :(得分:1)

我曾向伊利诺斯州南部的一位老农家询问前往渔湖的路线。他挠了一下头,然后对我说,"儿子,你不能从这里到达那里。" :)我想你可能和Leo在同一条船上。

问题不在于包装,问题是你的SDLC违背了最佳做法。任何类型的" dev"服务器应该镜像生产 - 你已经用你的方法加扰了。此外,您的开发人员似乎在开发服务器上都有自己代码的副本。这让我回想起12年,当我的伙伴和我,刚开始我们的小型开发商店,在开发服务器上托管代码并直接针对它开发 - 但这种方法不容易持续,你的团队越大,你得到的就越差找到了。

应该做的是将您的开发服务器作为生产镜像运行。然后允许开发人员在他们自己的工作站上运行代码 - 我们称之为本地开发。然后你使用你的源代码控制来处理差异,合并分支等。在这种情况下,你的每个开发人员都可以按照你的意愿使用包装,这些问题都可以解决。

我意识到我会给你一个解决方案,即“切断戈尔迪结”#34;可以这么说 - 但它是正确的。我想你正在浪费一些时间和当前的配置,我怀疑生产部署甚至汇集QA代码对你来说是一个巨大的挑战。