iis - 由于端口 8080 已添加到 wsdl 肥皂地址位置中的域,因此肥皂 Web 服务无法使用
问题描述
我有一个带有 IIS 10 的 Windows Server 2019 设置。
在 IIS 10 上,我使用 LetsEncrypt 生成的有效 SSL 证书在端口 80 和 443 上定义了一个绑定到“example.com”的网站。
在这个网站上,我定义了由 Microsoft ARR 管理的重写规则:从 HTTP 到 HTTPS 的重定向以及 Tomcat 上的各种 Web 服务重定向。
<rule name="http to https" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Found" />
</rule>
<rule name="myAPI" stopProcessing="true">
<match url="(myAPI.+)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="http://localhost:8080/{R:0}" />
</rule>
我有 Tomcat 9 正在运行并在使用此连接器定义的端口 8080 上侦听:
<Connector URIEncoding="UTF-8"
connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
relaxedQueryChars="\"
redirectPort="8443"
scheme="https"
proxyport="443"
proxyName="example.com"
/>
我的网络服务使用 SOAP,我有一个这样的 wsdl:
<wsdl:service name="MyService">
<wsdl:port binding="impl:MyServiceSoapBinding" name="MyService">
<wsdlsoap:address location="http://localhost:8080/myAPI/services/MyService"/>
</wsdl:port>
</wsdl:service>
当我在浏览器中启动https://example.com/myAPI/services/MyService?wsdl时,我可以看到生成的 WSDL 文件并且我遇到了以下问题。
在 web 服务位置,端口 8080 被添加到域中,因此 web 服务不可用。
<wsdl:service name="MyService">
<wsdl:port binding="impl:MyServiceSoapBinding" name="MyService">
<wsdlsoap:address location="https://example.com:8080/myAPI/services/MyService"/>
</wsdl:port>
</wsdl:service>
我不明白出了什么问题,任何帮助表示赞赏。
解决方案
嗯,找到了。它是Tomcat连接器中的“proxyPort”而不是“proxyport”......
推荐阅读
- php - IF 语句返回不正确的函数
- ios - 将照片库中的图像加载到我的 UIImageView 中,但是当我重新启动应用程序时图像不会改变
- javascript - 为什么我的上下文菜单会在页面顶部添加空白区域?
- postgresql - 使用 Slick 进行多重 OR 过滤
- mqtt - 无法连接到 Mosquitto 代理
- php - 如何在 Laravel 5.8 中调用另一个表中的数据
- keras - 字符串数据类型的 keras pad_sequence
- java - Apache Camel:拆分期间创建的属性在拆分后丢失
- python - Python读取文件N行转换为1行
- python - TensorFlow NN 嵌入 C++ 项目