2011-07-06 285 views
1

我已经创建了一个与IIS 6(Windows XP)中承载的WCF服务:为什么IMetadataExchange不可见?

<system.serviceModel>   
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="myServiceBehaviors">   
      <serviceMetadata httpGetEnabled="true"/>   
      <serviceDebug includeExceptionDetailInFaults="false"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors>  
    <services> 
     <service name="Namespace.Class" behaviorConfiguration="myServiceBehaviors">     
     <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />   
     </service>  
    </services>   
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel>  

我已经创建的虚拟目录(MyVirtualFolder)与Visual Studio 2010中,当我点浏览器中的“http://本地主机/ MyVirtualFolder/MyService.svc“ 我得到的错误页告诉我,我应该打开元数据交换接口说明如何做到这一点,我将如何修改我的配置文件。我仔细检查了这一点,我的配置相当于HTML页面提出的配置。

为什么IMetaDataExchange界面不可用?

预先感谢您!

+0

什么类型的你正在使用绑定请添加完整的配置代码 – hungryMind

+0

我觉得你的问题是,你没有。为服务配置的“主要”端点您只配置了mex端点 –

回答

0

最后我发现了什么是原因:

<service name="Namespace.Class">指出错误的类:(

0

尝试<serviceMetadata />而不是<serviceMetadata httpGetEnabled="true"/>
如果您在IIS中托管Web服务,则有* .svc文件。您不需要端点来获取元数据,删除端点,并且所有端点都可以正常工作。

+0

这是一个可怜的,但没有运气 –

0

从您的IMetadataExchange端点删除address="mex"

此外,您的服务本身没有实际的终端。

如果可能,请尝试使用WCF配置编辑器(Windows SDK的一部分)SvcConfigEditor来获得工作服务和客户端配置。

+0

仍然没有运气:( –