问题描述
|
我正在使用一个示例来做我的第一个wcf服务。
我正在使用的是
这个例子
给我错误
找不到mex端点。
我在控制台主机中包含了appconfig文件,并包含了以下代码
<?xml version=\"1.0\" encoding=\"utf-8\" ?>
<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled=\"True\"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
任何人都可以帮助我,因为我无法运行控制台主机...
解决方法
您是否实际上为服务配置了mex端点?
看起来像这样:
<service name=\"MyService\" ...>
<!-- actual service endpoints here -->
<endpoint address=\"/mex\" binding=\"mexHttpBinding\" contract=\"IMetadataExchange\" />
</service>
,
我正在使用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>