2011-08-15 18 views
0

我已經編寫了一個使用.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> 

回答

0

問題是我的客戶端和SoapUI v2.5在沒有名稱空間的情況下創建了錯誤的請求。我終於找到了在哪裏找到日誌文件,並使用Wireshark捕獲了一些請求。升級到SoapUI v4.X,它工作正常。我正在修改我的客戶端以包含名稱空間(用於生成客戶端代碼的框架似乎不工作或配置不正確)。

0

可能的錯誤:

  • Web服務綁定到特定的IP
  • 防火牆配置
  • 身份認證?

您是否檢查過SOAP請求和響應?

+0

我在我的開發機器上禁用了Window的防火牆,並且我不認爲該Web服務綁定到特定的IP,因爲我將它所駐留的網站設置爲綁定的IP地址字段中的「全部未分配」在IIS中。至於身份驗證,我還沒有設置任何身份驗證,所以我不認爲這是一個問題。 – amickj

+0

SOAP請求/響應怎麼樣?調試它們或使用soapUI等客戶端工具。你在哪裏得到HTTP 400錯誤 - 在服務器端還是客戶端? – Matten

+0

是的,我使用SoapUI。以下是我的要求和迴應。 – amickj

相關問題