0

我在 NET 4.0 中创建了一个 WCF 服务,它返回 XML,我使用 SoapUI 对其进行了测试,我可以看到所需的响应 xml。但是我的 WCF 服务会被第 3 方软件调用,他们想通过像 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" />

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

4

0 回答 0