Coldfusion Coldbox site thru CommandBox内部服务器返回的变量与从IIS返回的同一站点服务器不同

Coldfusion Coldbox site thru CommandBox内部服务器返回的变量与从IIS返回的同一站点服务器不同,coldfusion,cfml,lucee,coldbox,Coldfusion,Cfml,Lucee,Coldbox,我刚开始研究ColdBox,刚刚完成了快速入门()并在hello.index中添加了35; getSetting(“APPNAME”)# 在我的开发机器上使用CommandBox“start server”,它会在端口55700(无法脱离防火墙)启动它的内部服务器,并获得预期的输出(请参见第一个图像),在该输出中,它正在从.env文件中提取APPNAME 使用我的典型设置,即IIS服务器上的所有内容都在端口80或443上提供),APPNAME来自config/Coldbox.cfc(参见第二幅图

我刚开始研究ColdBox,刚刚完成了快速入门()并在hello.index中添加了35; getSetting(“APPNAME”)#

在我的开发机器上使用CommandBox“start server”,它会在端口55700(无法脱离防火墙)启动它的内部服务器,并获得预期的输出(请参见第一个图像),在该输出中,它正在从.env文件中提取APPNAME

使用我的典型设置,即IIS服务器上的所有内容都在端口80或443上提供),APPNAME来自config/Coldbox.cfc(参见第二幅图)

即使页面都是通过CommandBox中的IIS呈现的(即使我执行了“服务器停止”),变量似乎并不正确

有没有人经历过这种情况,或者知道我做错了什么

两个屏幕截图中该页面的代码

<cfoutput>
<h1>hello.index</h1>
#now()#
<div class="alert alert-danger">#getSetting("APPNAME")#</div>
<div class="alert alert-success">#getSetting("ENVIRONMENT")#</div>
<cfdump var="#application#" expand="false">
</cfoutput>

你好,索引
#现在()#
#getSetting(“APPNAME”)#
#getSetting(“环境”)#

确保您使用的是相同的web上下文:在第一个映像中,您访问的是127.0.0.1,在第二个映像中,您访问的是FQDN。只有在servlets主机配置级别将一个定义为别名时,它才能与相同的上下文一起工作。如果可能的话,交叉检查访问日志webcontext同样受到客户端的攻击

在我的开发机器上使用CommandBox“启动服务器”,它会启动 端口55700处的内部服务器(无法脱离防火墙)

作为讨论事项,CommandBox将使用您告诉它的任何端口。por 55700(在没有明确设置的情况下决定使用的随机端口)是否可在防火墙外访问取决于防火墙的设置

我得到了它所在的预期输出(见第一幅图) 从.env文件中提取APPNAME

ColdBox没有从.env文件中提取应用程序名称的内置函数。事实上,Coldbox不会从.env文件中提取任何内容。现在有各种各样的Coldbox和CommandBox模块或手动代码位,它们可以从.env文件加载设置,但您没有提到使用它们,也没有展示您的代码

使用我的典型设置,其中IIS服务器上的所有内容都在端口80或443上提供)

请原谅我们的无知,但这里没有人知道您的典型设置是什么。您是否使用IIS通过HTTP或AJP端口代理CommandBox的web服务器?您是否通过其他方式安装了Lucee的其他安装

APPNAME来自config/Coldbox.cfc(参见第二幅图)

appname始终来自ColdBox.cfc,除非您已明确配置了其他功能。如果您认为应该从其他地方加载appname,请共享该部分代码/设置

即使所有页面都是通过IIS呈现的(即使我使用“服务器 在CommandBox中停止“

同样,您的服务器是如何配置的?你提到停止CommandBox。是否有多个CommandBox服务器正在运行?你是否达到了你期望的目标?如果这是通过IIS提供服务的站点,它是否与CommandBox绑定

这些变量似乎不正确

这里无法帮助您,因为您尚未共享任何代码或配置详细信息,这些详细信息显示了如何在代码中定义此设置

有没有人经历过这种情况,或者知道我做错了什么

恐怕这里没有足够的信息知道你在做什么,更不用说你做错了什么

并在评论中回答您的几个问题

将来我是否必须在生产服务器上安装CommandBox

仅当您希望使用CommandBox托管站点时。ColdBox站点在CommandBox上运行没有相关性或要求。CommandBox只是一个CLI,它使启动和停止CF服务器变得非常容易(除其他外)。许多人在CommandBox上托管生产站点,但这根本不是一个要求

我希望这个站点与服务器上的所有其他CF站点一样工作,即使这个站点是唯一一个Coldbox站点

ColdBox站点没有什么特别之处——它的工作原理与任何其他ColdFusion应用程序一样。我怀疑您认为CommandBox是一种需求,这让您感到困惑。许多人使用CommandBox进行本地开发,因为它既快速又简单,只是不熟悉而已,然后部署到ColdFusion或Lucee的“传统”生产安装上


免责声明:我是CommandBox的首席开发人员,也是ColdBox MVC的提交人。

ColdBox是否在ColdBox应用程序根路径之外的其他地方创建上下文?您可以在上面的屏幕截图中看到路径。我在该路径中看到了WEB-INF,并假设127和TQDN都在使用它,您可以通过登录每个WEB管理员来检查WEB上下文路径,并查看位于的概述部分:和,两个WEB上下文路径是否相等?您击中了它的头部。尽管Webroot是相同的,但有两种不同的上下文。你知道有没有一种方法可以“强制”使用另一种上下文吗?将来我是否必须在生产服务器上安装CommandBox?我希望这个站点与服务器上的所有其他CF站点一样工作,即使这个站点是唯一一个Coldbox站点。