IIS Webservice,怪异的404 http响应代码

时间:2017-05-02 07:18:23

标签: web-services wcf iis biztalk

我正在努力使用IIS和SOAP Web服务并需要提示。

我使用BizTalk Orchestration创建一个简单的Web服务,它调用sql存储过程(针对BizTalk部署并作为WCF服务发布)。 我碰巧在我的开发机器上工作,但是当我将服务传输到测试环境时,它无法按预期工作。

首先发布Webservice本身,我可以通过下载WSDL文件并将其添加到SoapUI来订阅它。

但是一旦我尝试调用请求,Web服务器就会返回一个HTTP 404作为响应。如果我停止BizTalk Orchestration,我会得到一个HTTP 500。 所以我猜BizTalk到IIS连接工作。 但是没有任何消息部署到MessageBox(在BizTalk中我过滤了端口名称上的消息)

部署了大约30个其他WebServices,它们都使用相同的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>

1 个答案:

答案 0 :(得分:1)

我发现了问题。

我们的Test-和Prod-Environment之前有一个内部负载均衡,它可以自动将通信从http切换到https。

BizTalk中WebService的WCF-CustomIsolated Receivelocation将BasicHttpSecurityElement的basicHttpBinding选项设置为none。这导致了Http 404找不到错误。在将其设置为“transport”之后,它能够在负载均衡器中处理https重写并且它能够正常工作。

404 Not found =传输安全失败。