2009-04-29 82 views

回答

10

我會建議爲服務設置多個端點。使用webHttpBinding添加一個端點來獲取服務的XML版本。如果這樣做正確,您將從服務獲得的響應與basicHttpBinding端點相同,但沒有SOAP開銷。

除此之外,不能直接從瀏覽器調用SOAP Web服務,因爲它需要表單發佈。你可以使用工具來測試它使用SOAP,但我建議Soap UI。它用Java編寫,但我儘量不要對此持反對意見。 :)

36

您將需要WebGetAttribute添加到您的方法就像在瀏覽器下面的示例

[OperationContract] 
[WebGet(UriTemplate = "/placesList/{userId}", 
ResponseFormat = WebMessageFormat.Xml)] 
List<Places> GetAllPlacesForUser(String userId) 
{ 
    string xml = ""; 
    // build xml here 
    return xml; 
} 

現在,你可以調用這樣

http://localhost:8085/GeoPlacesDataService/placesList/10
的方法,其中10是userId參數。

注:爲了添加WebGetAttribute你必須引用其在一個單獨的組件

+6

網絡小工具不適合我。 IE向我展示了「壞請求」。 – Josh 2011-05-13 17:44:18

6

發現添加上述代碼之後System.ServiceModel.Web命名空間,端點屬性在被修改web.configbinding="webHttpBinding"behaviorConfiguration="webHttp"

+3

您介意指定包含這些屬性的標籤嗎? 或者如果您向我們提供您的web.config文件,它將會非常友善。 – 2012-09-04 16:32:00