Coldfusion 服务 + IIS

Coldfusion 服务 + IIS

我正在运行 Windows 2003 R2 服务器,其中安装了 IIS 和 ColdFusion。每当服务器重新启动并且 IIS 和 ColdFusion 进程都设置为自动启动时,ColdFusion 都会在 IIS 之前启动,从而阻止 IIS 启动,因为端口 80 存在冲突。每当 ColdFusion 在 IIS 之后启动时,它都可以正常工作。

有什么方法可以延迟一个服务的启动,直到另一个服务启动完毕之后?

任何帮助,将不胜感激!

答案1

您可以将 ColdFusion 服务标记为延迟加载,也可以将 IIS 设为 ColdFusion 的依赖项。依赖项意味着除非 IIS 已启动,否则 ColdFusion 不会启动,而停止 IIS 将停止 ColdFusion。

如果这就是您想要的;在命令提示符下(具有管理权限),键入:

sc config ColdFusionServiceName depend= W3SVC

请注意,in depend 后面的空格=是故意的,而且很重要。

您可以阅读更多关于sc config depend 这里

答案2

我还想指出,在正常部署中,哪个先启动并不重要。听起来好像 ColdFusion Server 已将其内部 Web 服务器激活并更改为使用端口 80(而不是默认的 8500)。如果是这样,当 CF 首先启动时,它将使用端口 80,然后 IIS 就没戏了。如果您使用的是 IIS,则应将 ColdFusion 的内部 Web 服务器正在使用的端口更改为其他端口,或完全禁用它。

来自Adobe ColdFusion 9 文档(与 CF 8 相同或相似):

切换内置 Web 服务器的端口

您可以更改内置 Web 服务器运行的端口。更改内置 Web 服务器的端口

  1. 备份 jrun.xml 文件。

    该文件位于 Windows 中的 cf_root\runtime\servers\coldfusion\SERVER-INF 目录中,以及 UNIX 中的 cf_root/runtime/servers/coldfusion/SERVER-INF 目录中。

  2. 打开原始的jrun.xml文件进行编辑。

  3. 更改 WebService 端口属性中指定的端口号(靠近文件底部):

    <service class="jrun.servlet.http.WebService" name="WebService"> 
      <attribute name="port">8500</attribute> 
      <attribute name="interface">*</attribute> 
      <attribute name="deactivated">false</attribute> 
      ... 
    </service>
    

    注意:确保 deactivated 属性设置为 false。

  4. 保存文件,然后重新启动 ColdFusion。

相关内容