【问题标题】:How to expose WCF4 metadata endpoint in ASP.NET MVC 2 app如何在 ASP.NET MVC 2 应用程序中公开 WCF4 元数据端点
【发布时间】:2010-09-14 20:19:44
【问题描述】:

我有一个 ASP.NET MVC 2 应用程序,其中定义了 WCF 服务(.svc 文件使用来自不同项目的服务)。 web.config WCF 部分如下所示:

<system.serviceModel>
<behaviors>
  <endpointBehaviors>
    <behavior name="RecordServiceAspNetAjaxBehavior">
      <enableWebScript />
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="HttpGetEnabledBehaviors" >
      <!-- Add the following element to your service behavior configuration. -->
        <serviceMetadata httpGetEnabled="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
  multipleSiteBindingsEnabled="true" />
<services>
  <service name="RecordService" behaviorConfiguration="HttpGetEnabledBehaviors">
    <endpoint address="" behaviorConfiguration="RecordServiceAspNetAjaxBehavior"
      binding="webHttpBinding" contract="RecordService" />
    <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
  </service>
</services>   

问题是,在浏览器中打开 RecordService.svc 后,我仍然收到“此服务的元数据发布当前已禁用”。消息...如何启用 wsdl/mex?

【问题讨论】:

  • 我认为 REST 服务(使用 webHttpBinding)没有任何要发布的元数据/WSDL .....

标签: .net wcf asp.net-mvc-2 wsdl mex


【解决方案1】:

WebHttpBinding 不生成 WSDL: http://social.msdn.microsoft.com/forums/en-US/wcf/thread/76757ad7-1877-4f62-b80f-74e577aaeacc

考虑使用 BasicHttpBinding 添加第二个服务端点并将其用于您的 WSDL。

【讨论】:

    【解决方案2】:

    WSDL 是 SOAP 规范的一部分。由于您不公开为 SOAP 绑定,因此没有 WSDL。你仍然可以使用mexHttpBinding。阅读this post了解更多信息。

    【讨论】:

      【解决方案3】:

      您的配置根本没有使用。而是使用默认 SOAP 端点。您看到的页面是基于 SOAP 的服务的默认页面,它表示您的服务没有打开元数据。但是您不想要基于 SOAP 的服务。您的配置没有定义任何 SOAP 端点,它定义了 REST JSON 端点。原因很可能在于 service 元素的 name 属性和第一个端点元素的 contract 属性。您必须使用服务的全名(带有命名空间)和合同的全名。检查您的 .svc 文件。它应该已经从不同的程序集指向您的服务类型。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-06
        • 1970-01-01
        • 2022-01-02
        • 1970-01-01
        • 1970-01-01
        • 2011-05-06
        • 2014-06-14
        • 2013-12-18
        相关资源
        最近更新 更多