在WCf中找不到Mex端点

时间:2011-06-15 19:02:40

标签: wcf

我正在使用一个例子来做我的第一个wcf服务.. 我正在使用的是 this example

给我错误 未找到mex端点。

我在控制台主机中包含了appconfig文件,并包含以下代码

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior>
                    <serviceMetadata httpGetEnabled="True"/>
                </behavior>
            </serviceBehaviors>
        </behaviors>
    </system.serviceModel>
</configuration>

任何人都可以帮助我,因为我无法运行控制台主机......

2 个答案:

答案 0 :(得分:0)

您是否真的为您的服务配置了mex端点?

这看起来像这样:

<service name="MyService" ...>
    <!-- actual service endpoints here -->
    <endpoint address="/mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>

答案 1 :(得分:0)

  

我正在使用visual studio 2008和   框架3.5

这就是整个问题。您要引用的示例适用于WCF 4,它使用称为默认端点或简化配置的东西。在WCF 3.5中不存在这样的情况。您必须手动配置您的服务及其所有端点!

<system.serviceModel>
  <services>
    <service name="EmailService.EmailValidator" behaviorConfiguration="Metadata"> 
      <host>
        <baseAddresses>
          <add baseAddress="http://localhost:8080/" />
        </baseAddresses>
      </host>
      <endpoint address="" binding="basicHttpBinding" contract="EmailService.IEmailValidator" />
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    </service>
  </services>
  <behaviors>
    <serviceBehaviors>
      <behavior name="Metadata">
        <serviceMetadata httpGetEnabled="true" />
      </behavior>
    </serviceBehaviors>
  </behaviors>
</system.serviceModel>