我已經編寫了一個使用.Net 4.0框架的Web服務,我可以在將應用程序發佈到IIS中的網站後,使用本地計算機上的測試客戶端(SoapUI)成功調用它。生成的存根和WSDL可從本地機器和網絡上的其他機器訪問,但是我無法從另一臺機器發送到WS端點;我可以從本地機器發佈到WS端點並獲得預期的響應。當我嘗試發佈到我的WS端點時,在HTML中出現HTTP 400錯誤 - 「HTTP錯誤400.請求嚴重形成」。這是我的IIS配置或我的應用程序文件的訪問權限問題嗎?如何設置.NET 4.0 Web服務以供本地網絡上的其他計算機使用?
注:Java開發人員在這裏,在學習.Net的過程中。
編輯:我禁用了Windows防火牆,並且我在IIS管理器中將網站綁定IP地址設置爲「All Unassigned」。
編輯:請求/響應
<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>
我在我的開發機器上禁用了Window的防火牆,並且我不認爲該Web服務綁定到特定的IP,因爲我將它所駐留的網站設置爲綁定的IP地址字段中的「全部未分配」在IIS中。至於身份驗證,我還沒有設置任何身份驗證,所以我不認爲這是一個問題。 – amickj
SOAP請求/響應怎麼樣?調試它們或使用soapUI等客戶端工具。你在哪裏得到HTTP 400錯誤 - 在服務器端還是客戶端? – Matten
是的,我使用SoapUI。以下是我的要求和迴應。 – amickj