在浏览器中调用类似于asmx的WCF服务

时间:2013-02-14 05:47:35

标签: wcf

我在.NET 4.0中创建了一个WCF服务,它返回了XML,我使用SoapUI测试了它,我可以看到所需的响应xml。但我的WCF服务将由第三方软件调用,他们希望通过像asmx这样的URL来使用它。我用谷歌搜索,发现我需要使用REST指南。但是,我还没有找到一个正确的链接,显示使用REST创建Web服务,然后从类似于Web服务的浏览器访问该方法。

下面是我用来返回XML格式的接口代码

public interface IService1
{

    [WebGet(
        UriTemplate = "/GetDocument/",
        BodyStyle = WebMessageBodyStyle.Bare,
        ResponseFormat = WebMessageFormat.Xml)]

    [OperationContract, XmlSerializerFormat]
    XmlElement GetDocument();

    // TODO: Add your service operations here
}

以下是我的配置设置。

<system.serviceModel>
<services>
  <service name="BritishLandXML.BritishLandXML1" behaviorConfiguration="metadataBehavior">
    <endpoint address="" binding="basicHttpBinding" contract="BritishLandXML.IService1" />        
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
  </service>
</services>

<bindings>
  <webHttpBinding>
    <binding>
      <security mode="None"></security>
    </binding>
  </webHttpBinding>
</bindings>

<behaviors>
  <endpointBehaviors>
    <behavior name="rest">
      <webHttp helpEnabled="true" faultExceptionEnabled="true" automaticFormatSelectionEnabled="true" />
    </behavior>
  </endpointBehaviors>

  <serviceBehaviors>
    <behavior name="metadataBehavior">
      <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
      <serviceMetadata httpGetEnabled="true"/>
      <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
      <serviceDebug includeExceptionDetailInFaults="true"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />

请让我知道如何实现这一目标以及需要具备哪些确切设置。

0 个答案:

没有答案