我使用.Net 4.0框架编写了一个Web服务,在将应用程序发布到IIS中的网站后,我可以使用本地计算机上的测试客户端(SoapUI)成功调用它。生成的存根和WSDL可以从本地机器和网络上的其他机器访问,但是我无法从另一台机器发布到WS端点;我可以从本地计算机发布到WS端点并获得预期的响应。当我尝试发布到我的WS端点时,我收到HTTP 400错误 - “HTTP错误400.请求格式错误”在HTML中。这是我的IIS配置或我的应用程序文件的访问权限的问题吗?
注意:Java开发人员在这里学习.Net。
编辑:我已禁用Windows防火墙,并且我在IIS管理器中将网站绑定IP地址设置为“所有未分配”。
编辑:请求/回复
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:add="http://mymachinenamewashere/SeflAddressService/AddressService.asmx">
<soapenv:Header/>
<soapenv:Body>
<add:CheckAddress>
<add:chkAddress>
<add:chkCompanyName>XXX</add:chkCompanyName>
<add:chkStreet1>420 Davega Rd.</add:chkStreet1>
<add:chkStreet2/>
<add:chkCity>Lexington</add:chkCity>
<add:chkState>SC</add:chkState>
<add:chkZipcode5>29169</add:chkZipcode5>
<add:chkZipcode4/>
<add:chkSuite/>
</add:chkAddress>
</add:CheckAddress>
</soapenv:Body>
</soapenv:Envelope>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request</h2>
<hr><p>HTTP Error 400. The request is badly formed.</p>
</BODY></HTML>
答案 0 :(得分:0)
可能的错误:
您是否检查过SOAP请求和响应?
答案 1 :(得分:0)
问题是我的客户端和SoapUI v2.5在没有命名空间的情况下创建了错误的请求。我终于想出了在哪里找到日志文件并使用Wireshark捕获了一些请求。升级到SoapUI v4.X,它工作正常。我正在修改我的客户端以包含命名空间(用于生成我的客户端代码的框架似乎无法正常工作或未正确配置)。