在ColdFusion中使用不同文件夹映射的SOAP / HTTP

时间:2015-11-06 07:06:14

标签: soap coldfusion coldfusion-11

我在使用ColdFusion 11服务器时遇到了一些奇怪的行为,其中(除其他外)发布了一些通过SOAP和HTTP访问的Web服务。服务器本身是Windows 2012,运行IIS。实际文件夹配置如下:

Folder config

IIS配置了两个网站,' BOB'和' BOB_Services'。两者都配置了CF Server Config工具,以便CF处理.cfc,.cfm文件。他们共享一个共同的CFIDE配置。

  • BOB的根是I:/ inetpub / BOB
  • BOB_Services的根目录是I:/ inetpub / BOB_Services

在CF Admin中配置了一个文件夹映射来自' /' to' I:/ inetpub / BOB'。不要问我为什么,似乎没有人知道。

通常BOB_Services 只有BOB个文件。昨天我们不小心将同一个文件复制到BOB_Services\services.cfc根文件夹中,并且所有使用lapply的SOAP服务都开始抛出错误。然而,我可以通过HTTP查询相同的Web服务(例如,使用http://bob/services.cfc?method=function1&param1=0 ....等)并获得有效的结果。

1 个答案:

答案 0 :(得分:0)

如果有其他人遇到这种奇怪的行为,这是一个参考答案。

使用HTTP GET调用BOB_Services/services.cfc时,似乎是文件夹映射

'/' -> 'I:/inetpub/BOB'

忽略

,用于处理请求的实际文件为I:/inetpub/BOB_Services/services.cfc

当使用SOAP客户端调用BOB_Services/services.cfc中的函数时,将调用文件夹映射,用于处理请求的文件为I:/inetpub/BOB/services.cfc IF IT EXISTS 。如果它不存在,则按预期使用文件I:/inetpub/BOB_Services/services.cfc

此行为似乎完全可重复 - 我可以发出SOAP请求,获取一个结果,更改映射,发出另一个请求并获得其他结果。