我在 ISA 服务器后面有一个 WSDL。WSDL 包含一个架构
<xsd:include schemaLocation="myschema.xsd"/>
但是,当通过 ISA 访问时,某些隐式映射会将服务器名称更改为应用程序名称“TEST”,如下面的 xsd:include 行所示
<xsd:include schemaLocation="http://TEST:8345/myservice?xsd=myschema.xsd"/>
可以使用以下 URL 访问 WSDL -
https://services.mycompany.com/myservice?wsdl
可以使用以下 URL 访问该架构 -
https://services.mycompany.com/myservice?xsd=myschema.xsd
问题在于 WSDL 中模式的翻译 URL 不正确。需要
<xsd:include schemaLocation="https://services.mycompany.com/myservice?xsd=myschema.xsd"/>
代替
<xsd:include schemaLocation="http://TEST:8345/myservice?xsd=myschema.xsd"/>
ISA 人员是否需要为此设置一些 ISA 规则(用于替换 WSDL 中的 URL)?他需要创建/更改什么规则?
答案1
您需要排除 XML 的翻译。有几种方法可以做到这一点,但这是我的方法。转到防火墙策略 > 工具箱 > 内容类型 > HTML 文档 > 内容类型。从可用类型列表中选择 text/xml 并点击添加。应用您的更改并重试。