IIS Webservice,奇怪的 404 http 响应代码
IIS Webservice, weird 404 http response code
我正在努力使用 IIS 和 SOAP Web 服务,需要提示。
我使用 BizTalk Orchestration 创建一个简单的 Web 服务,它调用一个 sql 存储过程(针对 BizTalk 部署并发布为 WCF 服务)。
我碰巧让它在我的开发机器上工作,但是当我将服务传输到测试环境时它没有按预期工作。
首先发布了 Webservice 本身,我可以通过下载 WSDL 文件并将其添加到 SoapUI 来订阅它。
但是一旦我尝试调用请求,Web 服务器 returns 将 HTTP 404 作为响应。如果我停止 BizTalk Orchestration,我会收到 HTTP 500。
所以我猜 BizTalk 到 IIS 的连接有效。
但是不会有任何消息部署到 MessageBox(在 BizTalk 中,我在端口名称上过滤了消息)
部署了大约 30 个其他 Web 服务,它们都使用相同的 Web.config。它们链接到 IIS 中的同一个 AppPool。
我尝试过的事情:
为应用程序创建了单个 IIS AppPool
已检查目录和 BizTalk-/IIS-用户的正确权限
重新部署解决方案并将其重新发布为服务
是的,这是一个糟糕的陈述,但它适用于我的开发机器。其配置与目标平台相同,只是目标是集群系统。但我不认为那是问题。
IIS 的日志仅显示请求,但没有相关信息。
我真的不知道去哪里看。有人有想法吗?
编辑我:
SOAP 响应
<body>
<div id="header">
<h1>Server Error</h1>
</div>
<div id="content">
<div class="content-container">
<fieldset>
<h2>404 - File or directory not found.</h2>
<h3>The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.</h3>
</fieldset>
</div>
</div>
</body>
我发现了问题。
在我们的测试环境和生产环境之前有一个内部负载平衡,它会自动将通信从 http 切换到 https。
BizTalk 中 WebService 的 WCF-CustomIsolated Receivelocation 具有 BasicHttpSecurityElement 的 basicHttpBinding 选项 none。这导致了 Http 404 not found 错误。将其设置为 "transport" 后,它能够处理负载均衡器中的 https 重写并且它起作用了。
404 未找到 = 传输安全失败。
我正在努力使用 IIS 和 SOAP Web 服务,需要提示。
我使用 BizTalk Orchestration 创建一个简单的 Web 服务,它调用一个 sql 存储过程(针对 BizTalk 部署并发布为 WCF 服务)。 我碰巧让它在我的开发机器上工作,但是当我将服务传输到测试环境时它没有按预期工作。
首先发布了 Webservice 本身,我可以通过下载 WSDL 文件并将其添加到 SoapUI 来订阅它。
但是一旦我尝试调用请求,Web 服务器 returns 将 HTTP 404 作为响应。如果我停止 BizTalk Orchestration,我会收到 HTTP 500。 所以我猜 BizTalk 到 IIS 的连接有效。 但是不会有任何消息部署到 MessageBox(在 BizTalk 中,我在端口名称上过滤了消息)
部署了大约 30 个其他 Web 服务,它们都使用相同的 Web.config。它们链接到 IIS 中的同一个 AppPool。
我尝试过的事情:
为应用程序创建了单个 IIS AppPool
已检查目录和 BizTalk-/IIS-用户的正确权限
重新部署解决方案并将其重新发布为服务
是的,这是一个糟糕的陈述,但它适用于我的开发机器。其配置与目标平台相同,只是目标是集群系统。但我不认为那是问题。
IIS 的日志仅显示请求,但没有相关信息。 我真的不知道去哪里看。有人有想法吗?
编辑我:
SOAP 响应
<body>
<div id="header">
<h1>Server Error</h1>
</div>
<div id="content">
<div class="content-container">
<fieldset>
<h2>404 - File or directory not found.</h2>
<h3>The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.</h3>
</fieldset>
</div>
</div>
</body>
我发现了问题。
在我们的测试环境和生产环境之前有一个内部负载平衡,它会自动将通信从 http 切换到 https。
BizTalk 中 WebService 的 WCF-CustomIsolated Receivelocation 具有 BasicHttpSecurityElement 的 basicHttpBinding 选项 none。这导致了 Http 404 not found 错误。将其设置为 "transport" 后,它能够处理负载均衡器中的 https 重写并且它起作用了。
404 未找到 = 传输安全失败。