通过浏览器调用WCF服务方法

时间:2009-04-29 14:07:09

标签: wcf web-services

我有一个使用基本http绑定的WCF服务。 如何通过浏览器调用其操作/方法?

3 个答案:

答案 0 :(得分: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,您必须引用System.ServiceModel.Web命名空间,该命名空间位于单独的程序集中

答案 1 :(得分:10)

我建议为服务设置多个端点。使用webHttpBinding添加端点以获取服务的XML版本。如果这样做正确,您将从服务获得的响应与basicHttpBinding端点相同,但没有SOAP开销。

除此之外,您无法直接从浏览器调用SOAP Web服务,因为它需要表单帖子。您可以使用工具使用SOAP对其进行测试,我建议使用Soap UI。它是用Java编写的,但我尽量不反对它。 :)

答案 2 :(得分:6)

添加上述代码后,必须在 web.config binding="webHttpBinding"behaviorConfiguration="webHttp"中修改端点属性。