现在我想要这个前缀,我不确定这应该在这里还是服务器故障所以我会在这里发布它。
我们正在Coldfusion 9中开发一个REST API,它在IIS 7上托管给客户端,在某些调用中,客户端必须调用另一个内部Web服务。当从托管API的服务器进行这些调用时没有错误,但是当我们从远程机器进行调用时,将返回以下消息:
'连接失败。状态代码不可用。'
我已经搜索了以下建议作为修复http://www.talkingtree.com/blog/index.cfm/2004/7/28/20040729的问题,但它对我不起作用。以下是我自己测试的注释:
答案 0 :(得分:2)
想法:
使用解析为内部ColdFusion服务器的URL远程调用Web服务(例如http:// [servername]:8300)。您可能需要进行一些配置才能实现此功能。这样做的原因是确定IIS或ColdFusion是否是根本原因。如果您可以远程访问内部服务器,那么IIS可能就是问题所在。
Web服务是通过SSL调用的吗?如果是这样,远程调用者也是ColdFusion吗?如果您已回答是,请检查远程调用方的JVM是否信任SSL证书。如果没有,您需要将其注册为JVM密钥库的一部分。
您可以从来电者ping主机服务器吗?如果没有,调用者是否需要“主机”条目?
如果在主机上启用,请查看.NET过滤器以及它与HTTP调用的交互方式。我遇到过无法访问名为“/ bin”的文件夹的情况,因为.NET过滤器拦截了请求。
答案 1 :(得分:0)
问题原来是每个调用都需要调用本身正在处理的基本身份验证,但IIS中已启用基本身份验证,导致IIS使用Authorization标头拦截任何请求。
这会导致问题,因为IIS假定如果身份验证被传递,那么它是针对该计算机/域上的用户而拒绝任何其他凭据(对系统有效)。当我们登录到机器时它正在工作,因为它来自本地,它不需要对用户进行身份验证。